Enable/Disable Checkbox

  • Hallo,
    nachdem ich den ganzen Tag ohne Erfolg gesucht habe, wende ich mich an euch.
    Ich denke mal, dass mein Problem ein Witz ist und ich werds nur allgemein fassen:

    [autoit]

    #include

    [/autoit][autoit][/autoit][autoit]

    GUICreate("Checkboxen", 175, 150)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 10, 40)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 10, 70)

    [/autoit][autoit][/autoit][autoit]

    GUISetState()

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Wend

    [/autoit]

    Die Frage ist nun: Wie disable(grau unterlegen) ich $checkbox2, wenn $checkbox1 aktiviert wird?
    Ohne das es andauernd blinkt und auch so, dass $checkbox2 enable wird, wenn $checkbox1 deaktiviert wird...

    nochmal in anderen Worten:
    $checkbox1 aktivieren-->$checkbox2 wird disable
    wenn ich nun wieder $checkbox1 deaktiviere-->soll $checkbox2 wieder Enable werdem

    Naja ich hoffe ihr versteht mich</GUIConstants.au3> und hoffentlich könnt ihr mir helfen :thumbup:
    Danke im vorraus!
    mfg The_Lennimal

    • Offizieller Beitrag

    Hi,

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>
    GUICreate("Checkboxen", 175, 150)

    [/autoit] [autoit][/autoit] [autoit]

    GUIStartGroup()
    $Checkbox1 = GUICtrlCreateRadio("Checkbox1", 10, 40)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Checkbox2 = GUICtrlCreateRadio("Checkbox2", 10, 70)
    GUIStartGroup()
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Wend

    [/autoit]
  • Hier in der _mouseUP testen und ändern:

    Spoiler anzeigen
    [autoit]

    $WM_LBUTTONUP = 0x202
    ; example 1
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("My GUI") ; will create a dialog box that when displayed is centered
    GUISetState (@SW_SHOW) ; will display an empty dialog box
    GUIRegisterMsg($WM_LBUTTONUP,"_mouseUP")

    [/autoit] [autoit][/autoit] [autoit]

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    Func _mouseUP()
    MsgBox(0, '', "Hier testen")
    EndFunc

    [/autoit]
  • und hier noch ne Version mit Checkboxen :D

    Spoiler anzeigen
    [autoit]

    #include<GUIConstants.au3>
    GUICreate("Checkboxen", 175, 150)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 10, 40)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 10, 70)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop

    Select
    Case $msg = $Checkbox1
    If GUICtrlRead($Checkbox1) = 1 Then
    GUICtrlSetState($Checkbox1, $GUI_ENABLE)
    GUICtrlSetState($Checkbox2, $GUI_DISABLE)
    ElseIf GUICtrlRead($Checkbox1) = 4 Then
    GUICtrlSetState($Checkbox1, $GUI_ENABLE)
    GUICtrlSetState($Checkbox2, $GUI_ENABLE)
    EndIf

    Case $msg = $Checkbox2
    If GUICtrlRead($Checkbox2) = 1 Then
    GUICtrlSetState($Checkbox2, $GUI_ENABLE)
    GUICtrlSetState($Checkbox1, $GUI_DISABLE)
    ElseIf GUICtrlRead($Checkbox2) = 4 Then
    GUICtrlSetState($Checkbox2, $GUI_ENABLE)
    GUICtrlSetState($Checkbox1, $GUI_ENABLE)
    EndIf
    EndSelect
    Wend

    [/autoit]
  • die 3. antwort ist genau das was ich gesucht habe.
    danke auch an die anderen, für euer bemühen und eure schnelle antwort :thumbup:
    ich hoffe ich hab nicht so schnell wieder eine frage ^^
    Lennimal

    • Offizieller Beitrag

    Natürlich gehts auch noch kürzer ;)

    Spoiler anzeigen
    [autoit]

    #include<GUIConstants.au3>
    Dim $state1 = $GUI_ENABLE
    Dim $state2 = $GUI_ENABLE

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("Checkboxen", 175, 150)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 10, 40)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 10, 70)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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)
    Case $msg = $Checkbox2
    $state1 = BitXOR($state1, $GUI_ENABLE, $GUI_DISABLE)
    GUICtrlSetState($Checkbox1, $state1)
    EndSelect
    Wend

    [/autoit]
  • die idee dahinter war selbstverständlich eine andere ^^
    ich bin dabei son kleines tool zu schreiben:
    ich möchte auf dem GUI anklicken, welche programme ich öffnen möchte...
    sprich, es soll die einzige anwendung sein, die sich beim windows-start öffnet, ich klick mich durch(zB: mozilla, iTunes) und es erledigt den rest
    und die sache ist, dass ich bei Mozilla die Unterpunkte "iGoogle" & "heise.de" habe, wobei iGoogle im Augenblick meine Startseite ist.
    das wiederum bedeutet, dass wenn ich mozilla aktiviere, sich der Unterpunkt "iGoogle" mitaktivieren soll...
    und genau das war mein Problem

    hoffe nun seit ihr gut genug aufgeklärt :D

    P.S.: ja, es ist mein erstes wahres script...

    schönen rest-abend ;)