Input auf Eingabe prüfen

  • Hallo,
    ich hab mal wieder ein kleines Problemchen ;) und zwar:

    Ich habe eine Oberfläche mit einigen eingabe Feldern und dazu eine Reihe von Checkboxen.

    Außerdem gibt es ein Button der solange ausgegraut sein soll, bis mindestens eine Checkbox geklickt wurde. Zudem soll die Prüfung auf Eingabe der Input Felder geprüft werden. Es wäre halt cool wenn erst nach allen dynamischen Überprüfungen der Button automatisch aktiviert wird.

    Ich habe schon es so gelöst, das wenn man auf den Button klickt, das erstmal geprüft wird, ob irgendwelche Eingaben getätig worden sind, allerdings noch nicht mit der Checkbox.

    Gibt es dort einfache Methoden, oder würdet ihr es auch einfach in einer For Schleife einfach prüfen?

    Hoffe ihr könnt mir helfen.


    Gruß
    dragst3r

  • Hab grad mal eine Checkfunktion für die Checkboxen gebastelt. Und es funzt auch so schonmal =)

    [autoit]


    Func checkbox_check($array)
    Dim $merker = False
    For $i = 1 To UBound($array) - 1
    If GUICtrlRead($array[$i]) == $GUI_CHECKED Then
    $merker = True
    ExitLoop
    EndIf
    Next
    Return $merker
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    MIt GUICtrlRead() prüfen funktioniert manchmal nicht. Hier mal mit BitAnd().
    Habe deine Funktion noch etwas optimiert. ;)

    [autoit]

    Func checkbox_check($array)
    For $i = 1 To UBound($array) - 1
    If BitAND(GUICtrlRead($array[$i]),$GUI_CHECKED) Then Return True
    Next
    Return False
    EndFunc

    [/autoit]
  • Ah danke. So ist natürlich noch kürzer der Code.

    Also bei mir hatte es ohne BitAND immer funktioniert, da entweder 4 oder 1 zurückgegeben wurden, durch BitAND habe ich halt jetzt 0 oder 1 als Rückgabe

  • Hallo, ich wollte mal fragen ob es auch noch andere möglichkeiten gibt?
    Weil ich bekomme es einfach irgendwie nicht hin mit meinem GUI.

    Hier ist mein Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $user = "Name"
    $password = 111

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

    GUICreate("Anmeldung", 300, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")

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

    GUICtrlCreateLabel("User:", 5, 15)
    GUICtrlCreateLabel("Password:", 5, 55)

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

    $input = GUICtrlCreateInput("", 80, 10, 100, 25)
    $input2 = GUICtrlCreateInput("", 80, 50, 100, 25, $ES_PASSWORD)

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

    $bt = GUICtrlCreateButton("OK", 135, 120, 40, 25)
    GUICtrlSetOnEvent($bt, "ok")

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

    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(1000)
    WEnd

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

    Func close()
    Exit
    EndFunc

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

    Func ok()
    If GUICtrlRead($input &$input2) = $user &$password Then
    MsgBox(64, "Richtig", "Das ist die richigte eingabe")
    Else
    MsgBox(16, "Falsch", "Das ist nicht die richtige eingabe")
    EndIf
    EndFunc

    [/autoit]
  • ja sorry ich bin nicht gerade der große programmierer ich arbeite ja dran alles zu erlernen. :D
    Deswegen frage ich auch um daraus zu lernen. ;)
    Wie könnte ich es dann schreiben, bitte?

    Ich danke schon mal im voraus.

    Einmal editiert, zuletzt von m3hm3t (26. Oktober 2007 um 20:56)