CheckBox und InputBox - Abfragen des Status

  • Hallo zusammen,

    ich sitze jetzt schon Stunden vor einem Problem und habe schon mehrere Lösungswege versucht, natürlich auch Google abgesucht. Leider komme ich zu keinem positiven Ergebnis. Jetzt hoffe ich, dass mir hier jemand helfen kann. Vielleicht sehe ich ja auch nur den Wald vor lauter Bäumen nicht mehr.

    Erstmal mein Test-Script:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>

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

    $MainWindow = GUICreate("Testwindow", 500, 500)
    GUICtrlSetState(-1, $GUI_ENABLE)
    GUISetState(@SW_SHOW, $MainWindow)

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

    $JNLPCheckBox = GUICtrlCreateCheckbox("JNLP-Dateien automatisch anpassen? Bitte IP oder Hostname mit angeben!", 20, 280)
    $hostnameBox = GUICtrlCreateInput("", 20, 300, 150)

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

    $UpdateButton = GUICtrlCreateButton("Update!", 20, 450, 100)

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

    while 1
    Switch GUIGetMsg()
    Case $UpdateButton
    $hostRead = GUICtrlRead($hostnameBox)
    Call("_CheckInput")
    EndSwitch
    WEnd

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

    Func _CheckInput()
    $ErrorVar = 0
    Select
    Case GUICtrlRead($JNLPCheckBox) = $GUI_CHECKED And GUICtrlRead($hostnameBox) = 0
    $ErrorVar = 6
    $ErrorText = "JNLP-Anpassung wurde angehakt, aber kein Hostname/IP eingetragen!"
    MsgBox(0, "Test", $ErrorText)
    EndSelect
    EndFunc

    [/autoit]

    Kurze Erklärung: Es muss eine CheckBox angehakt werden und, falls sie angehakt wurde, in ein Textfeld eine IP/Hostname eingegeben werden. Ist die Checkbox nicht aktiviert, muss auch in der InputBox nichts stehen.
    Jetzt habe ich hier folgendes Phänomen:
    Sobald ich die Checkbox anhake, ist es schnurzpiepegal, ob ich in die InputBox etwas eintrage oder nicht - Jedes Mal kommt der Dialog, dass die InputBox leer ist. Selbst wenn ich unter $ErrorVar=6 ein ConsoleWrite(GUICtrlRead($hostnameBox)) schreibe, kommt der korrekte Wert zurück. Trotzdem sagt AutoIT, dass dort nichts drin stehen würde.
    Ich habe schon folgendes versucht:

    Spoiler anzeigen
    [autoit]


    Case GUICtrlRead($JNLPCheckBox) = $GUI_CHECKED And GUICtrlRead($hostnameBox) = 0

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

    Case GUICtrlRead($JNLPCheckBox) = 1 And GUICtrlRead($hostnameBox) = 0

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

    Case GUICtrlRead($JNLPCheckBox) = $GUI_CHECKED
    if GUICtrlRead($hostnameBox) = 0 Then

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

    Case GUICtrlRead($JNLPCheckBox) = 1
    if GUICtrlRead($hostnameBox) = 0 Then

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

    Case BitAnd(GUICtrlRead($JNLPCheckBox), $GUI_CHECKED) = $GUI_CHECKED AND GUICtrlRead($hostnameBox) = 0

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

    Case BitAnd(GUICtrlRead($JNLPCheckBox), $GUI_CHECKED) AND GUICtrlRead($hostnameBox) = 0

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

    Nichts davon funktioniert. Sobald die Checkbox aktiviert wird, läuft das Script auf die MsgBox. Ich habe eben schon die neue Version des Editors geladen, weil ich eventuell gehofft habe, dass das ein genereller Fehler war. Leider war dem nicht so.
    Jetzt hoffe ich hier auf den finalen Denkanstoß....

    Schon mal vielen Dank im Voraus.

    Neuro

    Einmal editiert, zuletzt von Neurosis404 (28. Juni 2012 um 13:27)

  • *seufz* Ich wusste doch, dass es ganz einfach ist.... Vielen Dank, jetzt klappts. Auf die einfachsten Lösungen kommt man einfach nicht....