Guten Abend zusammen,
auf der Suche nach einer Möglichkeit eine Combo durch eine Checkbox1 in einem GUI zu aktivieren/deaktivieren bin ich auf folgende Lösung gestoßen:
HotKeySet("{ESC}","_exit") ; Hotkey für EXIT
HotKeySet ("{F4}", "_break") ; Hotkey für BREAK
Global $Checkbox1
Global $Checkbox2
Global $msg
Global $Modus2
Global $Start
Dim $state1 = $GUI_DISABLE
Dim $state2 = $GUI_DISABLE
$gui = GUICreate("Checkboxen", 500, 500)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 10, 40)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 10, 70)
$Modus2 = GUICtrlCreateCombo("Create", 250, 100, 150, 100, $CBS_DROPDOWNLIST)
GUICtrlSetState( $modus2, $GUI_DISABLE)
$Abbrechen = GUICtrlCreateButton(" Abbrechen", 200, 200, 80, 30)
GUISetState()
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Select
Case $msg = $Checkbox1
$state2 = BitXOR($state2, $GUI_ENABLE, $GUI_DISABLE)
GUICtrlSetState($Checkbox2, $state2) ; Control Deaktivieren
GUICtrlSetState($Modus2, $state2) ; Control Deaktivieren
Case $msg = $Checkbox2
$state1 = BitXOR($state1, $GUI_ENABLE, $GUI_DISABLE)
GUICtrlSetState($Checkbox1, $state1)
Case $msg = $Abbrechen
_exit
EndSelect
Wend
Alles anzeigen
Soweit, so gut, die ganze Angelegenheit funktioniert: Combo wird aktiviert sobald Ckechbox1 aktiviert ist.
Kann mir einer erklären was dieses BitXOR(...) genau macht ?
Wieso $state2 = BitXOR($state2, $GUI_ENABLE, $GUI_DISABLE) ?
Ich habe herausgefunden dass bei BitOR die Checkbox nicht mehr von ENABLE zu DISABLE zurück wechselt.
Die deutsche Doku zum Befehl habe ich gelesen, allerdings hätte ich mit der chinesischen Doku wohl genau so viel verstanden...
Da ich den Befehl in Zukunft wohl öfters brauchen werde, wäre es von Vorteil das Teil evtl auch zu verstehen.
Umso simpler die Erklärung, desto besser.
THX im Vorraus.
Gruß Filtech