Checkbox auslesen - GUICtrlRead-Ausgabe vertauscht

  • Hallo zusammen,


    geht um das Auslesen von Checkboxen. Zwar funktioniert das eigentlich ganz gut, nur scheint es Probleme damit zu geben, dass der Status der Checkbox ($checkbox1) bei mir anfangs auf "checked" gesetzt ist.

    Wenn ich das Ganze jetzt auslese, kommt als ToolTip dann "checked" wenn die Box eigentlich von mir unchecked wurde. Genauso wird als ToolTip "Unchecked" angezeigt obwohl die Box auf "checked" steht.

    Ich stehe irgendwie auf dem Schlauch, es ist doch bestimmt möglich trotz meiner geänderten Default-Einstellung auf "checked" das trotzdem das richtige beim Auslesen zurückgeben wird, oder? :-/

    Hier mal der Code:


    Spoiler anzeigen


    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=C:\Documents and Settings\z0035rer\Desktop\DD\DD.kxf
    $Form1 = GUICreate("Database Delete", 623, 442, 192, 124)
    $Group1 = GUICtrlCreateGroup("Select Database", 16, 16, 177, 209)
    $Radio1 = GUICtrlCreateRadio("REP DB", 32, 56, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio2 = GUICtrlCreateRadio("COM DB", 32, 96, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio3 = GUICtrlCreateRadio("BUS DB", 32, 136, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio4 = GUICtrlCreateRadio("LOG DB", 32, 176, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Verbindung ", 224, 16, 353, 209)
    $Checkbox1 = GUICtrlCreateCheckbox("automatisch", 256, 56, 97, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Checkbox2 = GUICtrlCreateCheckbox("manuell", 424, 56, 97, 17)
    $Input1 = GUICtrlCreateInput("DB - Name", 256, 112, 121, 21)
    $Input2 = GUICtrlCreateInput("Benutzer", 256, 160, 121, 21)
    $Input3 = GUICtrlCreateInput("Passwort", 408, 112, 121, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case BitAnd(GUICtrlRead($checkbox1),$GUI_CHECKED) = $GUI_CHECKED
    ToolTip("checked")
    Case BitAnd(GUICtrlRead($checkbox1),$GUI_UNCHECKED) = $GUI_UNCHECKED
    ToolTip("unchecked")

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

    EndSwitch
    WEnd

    [/autoit]

    2 Mal editiert, zuletzt von Eldolu (5. Dezember 2012 um 10:45) aus folgendem Grund: Mit AutoIt Code

  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=C:\Documents and Settings\z0035rer\Desktop\DD\DD.kxf
    $Form1 = GUICreate("Database Delete", 623, 442, 192, 124)
    $Group1 = GUICtrlCreateGroup("Select Database", 16, 16, 177, 209)
    $Radio1 = GUICtrlCreateRadio("REP DB", 32, 56, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio2 = GUICtrlCreateRadio("COM DB", 32, 96, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio3 = GUICtrlCreateRadio("BUS DB", 32, 136, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio4 = GUICtrlCreateRadio("LOG DB", 32, 176, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Verbindung ", 224, 16, 353, 209)
    $Checkbox1 = GUICtrlCreateCheckbox("automatisch", 256, 56, 97, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Checkbox2 = GUICtrlCreateCheckbox("manuell", 424, 56, 97, 17)
    $Input1 = GUICtrlCreateInput("DB - Name", 256, 112, 121, 21)
    $Input2 = GUICtrlCreateInput("Benutzer", 256, 160, 121, 21)
    $Input3 = GUICtrlCreateInput("Passwort", 408, 112, 121, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $checkbox1
    Switch BitAND(GUICtrlRead($checkbox1), $GUI_CHECKED) = $GUI_CHECKED
    Case True
    ToolTip("checked")
    Case False
    ToolTip("unchecked")
    EndSwitch
    Case $checkbox2
    Switch BitAND(GUICtrlRead($checkbox2), $GUI_CHECKED) = $GUI_CHECKED
    Case True
    ToolTip("checked")
    Case False
    ToolTip("unchecked")
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    So gehts....

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

    Einmal editiert, zuletzt von mirko2002 (4. Dezember 2012 um 13:53)

  • Vielen Dank Mirko2002!

    Habe es mittlerweile auch hinbekommen. Falls es jemanden interessiert:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=C:\Documents and Settings\z0035rer\Desktop\DD\DD.kxf
    $Form1 = GUICreate("Database Delete", 623, 442, 192, 124)
    $Group1 = GUICtrlCreateGroup("Select Database", 16, 16, 177, 209)
    $Radio1 = GUICtrlCreateRadio("REP DB", 32, 56, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio2 = GUICtrlCreateRadio("COM DB", 32, 96, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio3 = GUICtrlCreateRadio("BUS DB", 32, 136, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    $Radio4 = GUICtrlCreateRadio("LOG DB", 32, 176, 113, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_RIGHTBUTTON))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Verbindung ", 224, 16, 353, 209)
    $Checkbox1 = GUICtrlCreateCheckbox("automatisch", 256, 56, 97, 17)
    GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    ;$Checkbox2 = GUICtrlCreateCheckbox("manuell", 424, 56, 97, 17)
    $Input1 = GUICtrlCreateInput("DB - Name", 256, 112, 121, 21)
    $Input2 = GUICtrlCreateInput("Benutzer", 256, 160, 121, 21)
    $Input3 = GUICtrlCreateInput("Passwort", 408, 112, 121, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Select
    Case $nMsg = $GUI_EVENT_CLOSE
    Exit
    Case (GUICtrlRead($Checkbox1) = $GUI_CHECKED) = $GUI_CHECKED
    Tooltip("checked")
    Case (GUICtrlRead($Checkbox1) = $GUI_UNCHECKED) = $GUI_UNCHECKED
    ToolTip("unchecked")

    EndSelect
    WEnd

    [/autoit]


    PS: Die zweite Checkbox die Mirko schon eingebunden hat, ist in meiner Lösung noch nicht drin.

    Lag übrigens daran, dass er mein BitAND wegen meinem Switch-Befehl gegen $nMsg verglichen hat. Mirko hat das umgangen, indem er einen neuen Switch-Befehl eingebaut hat und damit jetzt das BitAnd gegen $checkbox1 vergleicht. In meiner lösung habe ich einfach den Switch-Befehl durch Select ersetzt. Damit muss ich jetzt zwar immer wenn ich gegen $nMsg vergleichen will selbiges dazuschreiben. Macht den Code aber meiner Meinung nach übersichtlicher :P


    Vielen Dank nochmal an Mirko. :)