Hi!
Ich brauchte letztens etwas um einem Klassenkameraden eine mathematische Rechnung zu verdeutlichen, dazu baute ich mir ein GUI mit Kästchenpapier.
Das half so, das ich dafür zwei rudimentäre Funktionen geschrieben habe, _SetText mit welcher man den Text des Kästchenpapiers ändern kann, und _Clear, welche die gesamte Seite säubert.
Wenn Interesse besteht baue ich auch noch mehr Funktionen ein wie z.B. das Ändern einer einzelnen Zeile.
Das fertige Ding mit den Funktionen passt in 85 Zeilen.
Vlt. mach ich irgendwann noch ne UDF daraus, mal sehen, dann aber mit GDE statt naja...
Das Skript:
Skript
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <StaticConstants.au3>
$hGUI = GUICreate("", @desktopwidth, @desktopheight, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
GUISetBkColor(0x000000)
GUISetState()
;campweb
#region Create
$Big = 10
ToolTip("Please wait while creating...")
Dim $Label[10000]
$It = 0
For $x = 1 To @DesktopWidth Step $Big*2
For $y = 1 To @DesktopHeight Step $Big*2
$It += 1
$Label[$It] = GUICtrlCreateLabel("", $x, $y, ($Big*2)-1, ($Big*2)-1, $SS_CENTER)
GUICtrlSetFont(-1, 12, default, default, "Courier New")
GUICtrlSetBkColor(-1, 0xFFFFFF)
Next
Next
ToolTip("Created!")
#endregion
_SetText($hGUI, "Hallo, du da! CRLF" & _
"Zweite Zeile? CRLF" & _
"CRLF" & _
" 100 CRLF" & _
"+ 900 CRLF" & _
"----- CRLF" & _
" 1000 CRLF" & _
"CRLF" & _
"CRLF" & _
"by campweb (2011) CRLF" & _
"ESC for the next! CRLF" & _
"Look at autoit.de for more cool stuff from CRLF"& _
"others and me!")
Do
ToolTip("Wieso kann ich eigentlich keine toten ToolTips löschen? Es ist "&@hour&" Uhr "&@min&".")
Until GUIGetMsg() = $GUI_EVENT_CLOSE
_Clear($hGUI)
Sleep(2000)
Func _Clear($hGUI)
GUISwitch($hGUI)
ToolTip("Please wait while clearing...")
For $i = 1 To (Int(@DesktopWidth/20))*(Int(@Desktopheight/20))
GUICtrlSetData($Label[$i], "")
Next
ToolTip("Cleared!")
EndFunc
Func _SetText($hGUI, $Text)
GUISwitch($hGUI)
ToolTip("Please wait while setting Text...")
$Data = $Text
$aAll = StringSplit($Data, "CRLF", 1)
For $e = 1 To $aAll[0]
$sData = $aAll[$e]
$aData = StringSplit($sData, "")
For $i = 0 To UBound($aData)-2
$Const = $e+1
If $aData[$i+1] > (@DesktopWidth/20) Then
ConsoleWrite("Text Line Error: Longer then Desktopwidth!")
Exit
EndIf
$Textt = $aData[$i+1]
GUICtrlSetData($Label[((@desktopheight/20)*$i-1)+($Const)], $Textt)
Next
Next
ToolTip("Text set!")
EndFunc
MfG, campweb