- Offizieller Beitrag
Ihr kennt das sicher, man schreibt an einem Projekt und erstellt sich dafür skriptinterne Funktionen. Eigentlich zu klein um sie als UDF zu posten, aber nützlich vllt. auch für jemand anderen.
Aus diesem Grund denke ich mir, dass es sinnvoll ist diesen "Snippet-Code" zu sammeln.
Damit es übersichtlich ist und auch der gewünschte Nutzen entsteht, sollten diese kleinen Schätzchen mit einer ordentlichen Funktionsbeschreibung versehen werden.
Auch ein minimales Bsp.-Skript wär schön.
Und damit es auch über die Forumssuche auffindbar ist: Suchtags einfügen.
Beteiligt euch ruhig emsig.
Hier meine ersten Snippets:
_GuiCtrlSwitchChecked
;===============================================================================
; Function Name....: _GuiCtrlSwitchChecked
; Description......: Schaltet den Status einer Checkbox (od. eines Radio) in den
; .................: entgegengesetzten Zustand (CHECKED <==> UNCHECKED)
; Parameter(s).....: $_iCtrlID ID der Checkbox(des Radio)
; Return Value(s)..: Erfolg 1
; .................: Fehler 0
; Note.............: Für Radio nicht unbedingt sinnvoll. Beim Wechsel UNCHECKED zu
; .................: CHECKED wird natürlich ein anderes Radio UNCHECKED. Aber anders
; .................: herum ist es ja nicht bekannt, welches Radio gechecked
; .................: werden soll und deshalb sind dann alle UNCHECKED
; Author(s)........: BugFix ( [email='bugfix@autoit.de'][/email] )
;===============================================================================
Func _GuiCtrlSwitchChecked($_iCtrlID)
Return GUICtrlSetState($_iCtrlID, BitXOR(BitOR($GUI_CHECKED, $GUI_UNCHECKED), BitAND(GUICtrlRead($_iCtrlID),$GUI_CHECKED)))
EndFunc ;==> _GuiCtrlSwitchChecked
Beispiel
$GUI = GUICreate('Test Check', 200, 100)
$cb = GUICtrlCreateCheckbox('CheckBox', 10, 10)
$radio1 = GUICtrlCreateRadio('Radio1', 10, 57)
$radio2 = GUICtrlCreateRadio('Radio2', 70, 57)
$bt1 = GUICtrlCreateButton('CheckBox', 130, 10, 60)
$bt2 = GUICtrlCreateButton('Radio1', 130, 55, 60)
GUISetState()
While 1
Switch GUIGetMsg()
Case $bt1
_GuiCtrlSwitchChecked($cb)
Case $bt2
_GuiCtrlSwitchChecked($radio1)
Case -3
Exit
EndSwitch
WEnd
Suchbegriffe: Controlstatus, Checked, Unchecked
_GuiCtrlsSetColors
;===============================================================================
; Function Name....: _GuiCtrlsSetColors
; Description......: Bei bis zu 10 Controls gleichzeitig dieselbe Text- und/oder
; .................: Hintergrundfarbe setzen
; Parameter(s).....: $_iColor Textfarbe, -1 setzt Textcolor nicht
; .................: $_iBkColor Hintergrundfarbe, -1 setzt Hintergrundfarbe nicht
; .................: $_ctrl1 erstes Control für das die Farbe(n) gesetzt wird(werden)
; ......[optional].: $_ctrl2..10 weiter Controls für dieselbe Farbsetzung
; Return Value(s)..: Erfolg 1
; .................: Fehler 0 @error=1 kein Control übergeben
; Author(s)........: BugFix ( [email='bugfix@autoit.de'][/email] )
;===============================================================================
Func _GuiCtrlsSetColors($_iColor, $_iBkColor=-1, $_ctrl1=-1, $_ctrl2=-1, $_ctrl3=-1, $_ctrl4=-1, $_ctrl5=-1, $_ctrl6=-1, $_ctrl7=-1, $_ctrl8=-1, $_ctrl9=-1, $_ctrl10=-1)
Local $aCtrl[10] = [$_ctrl1, $_ctrl2, $_ctrl3, $_ctrl4, $_ctrl5, $_ctrl6, $_ctrl7, $_ctrl8, $_ctrl9, $_ctrl10]
If $_ctrl1 = -1 Then Return SetError(1,0,0)
For $i = 0 To 9
If $aCtrl[$i] = -1 Then Return
If $_iBkColor > -1 Then GUICtrlSetBkColor($aCtrl[$i], $_iBkColor)
If $_iColor > -1 Then GUICtrlSetColor($aCtrl[$i], $_iColor)
Next
Return 1
EndFunc ;==>_GuiCtrlsSetColors
Beispiel
$GUI = GUICreate('Test Color', 200, 100)
$label = GUICtrlCreateLabel('Label', 10, 10)
$in = GUICtrlCreateInput('Input', 10, 35, 60)
GUICtrlSetBkColor(-1, 0xF0F0F0)
$cb = GUICtrlCreateCheckbox('CheckBox', 10, 60)
; "Checkbox, Radio, Group or Progress controls cannot be painted if the "Windows XP/Vista style" is used."
$bt1 = GUICtrlCreateButton('Set', 130, 10, 60)
$bt2 = GUICtrlCreateButton('ReSet', 130, 55, 60)
GUISetState()
While 1
Switch GUIGetMsg()
Case $bt1
_GuiCtrlsSetColors(0xFFFFFF, 0x0000FF, $label, $in, $cb, $bt1, $bt2)
Case $bt2
_GuiCtrlsSetColors(0x000000, 0xF0F0F0, $label, $in, $cb, $bt1, $bt2)
Case -3
Exit
EndSwitch
WEnd
Suchbegriffe: Textfarbe, Hintergrundfarbe
_GuiCtrlsSetState
;===============================================================================
; Function Name....: _GuiCtrlsSetState
; Description......: Bei bis zu 10 Controls gleichzeitig denselben Statuswert setzen
; Parameter(s).....: $_iState Statuswert (od. BitOR-Kombination Werte) der gesetzt werden soll
; .................: $_ctrl1 erstes Control für das der Status gesetzt wird
; ......[optional].: $_ctrl2..10 weiter Controls für die der Status gesetzt wird
; Author(s)........: BugFix ( [email='bugfix@autoit.de'][/email] )
;===============================================================================
Func _GuiCtrlsSetState($_iState, $_ctrl1, $_ctrl2=-1, $_ctrl3=-1, $_ctrl4=-1, $_ctrl5=-1, $_ctrl6=-1, $_ctrl7=-1, $_ctrl8=-1, $_ctrl9=-1, $_ctrl10=-1)
Local $aCtrl[10] = [$_ctrl1, $_ctrl2, $_ctrl3, $_ctrl4, $_ctrl5, $_ctrl6, $_ctrl7, $_ctrl8, $_ctrl9, $_ctrl10]
For $i = 0 To 9
If $aCtrl[$i] = -1 Then Return
GUICtrlSetState($aCtrl[$i], $_iState)
Next
EndFunc ;==>_GuiCtrlsSetState
Beispiel
$GUI = GUICreate('Test Status', 200, 100)
$label = GUICtrlCreateLabel('Label', 10, 10)
$in = GUICtrlCreateInput('Input', 10, 35, 60)
$cb = GUICtrlCreateCheckbox('CheckBox', 10, 60)
$bt1 = GUICtrlCreateButton('Disable', 130, 10, 60)
$bt2 = GUICtrlCreateButton('Enable', 130, 55, 60)
GUISetState()
While 1
Switch GUIGetMsg()
Case $bt1
_GuiCtrlsSetState($GUI_DISABLE, $label, $in, $cb)
Case $bt2
_GuiCtrlsSetState($GUI_ENABLE, $label, $in, $cb)
Case -3
Exit
EndSwitch
WEnd
Suchbegriffe: Status, Controlstatus