Falsche Eingaben abfangen

  • Hallo

    ich habe ein Problem falsche Eingaben, die der User macht abzufangen und die Eingabe ggf. wiederholen zu lassen. Hier ein Beispiel mit Code:


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 454, 192, 114)
    $Input1 = GUICtrlCreateInput("", 56, 32, 153, 21)
    $Button1 = GUICtrlCreateButton("Button1", 80, 104, 65, 33, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###


    while 1

    $nMsg = GUIGetMsg()
    Select
    Case $nmsg = $GUI_EVENT_CLOSE
    Exit
    case $nmsg = $button1
    $zahl1 = GUICtrlRead($input1)

    EndSelect
    WEnd


    Ich möchte nun zum Beispiel das die eingegebene Zahl nicht größer als 50 sein darf. Falls schon soll ne Meldung generiert werden (msgbox) und keine weiteren Anweisungen ausgeführt werden, sondern der Benutzer muss nochmal die Eingaben wiederholen. Bisher schaffe ich es nur bei einer falschen Eingabe einen Programmabruch per Exit zu erzwingen, jedoch nicht die Neu-Eingabe.

    Für Hilfe wäre ich sehr dankbar.

  • Das wäre dann nur um eine IF-Abfrage erweitert. Siehe unten.


    while 1


    $nMsg = GUIGetMsg()
    Select
    Case $nmsg = $GUI_EVENT_CLOSE
    Exit
    case $nmsg = $button1
    $zahl1 = GUICtrlRead($input1)
    if $zahl1 > 50 then
    Exit
    EndIf


    EndSelect
    WEnd

  • Diese Idee hatte ich auch, habe aber ein Problem. Ich habe eine GUI (GUI_1) und dort werden 7 variablen per "GUICtrlCreateInput" eingegeben. Danach wird über einen Button eine neue GUI (GUI_2) angezeigt. Mein Problem ist, das ich zwar eine msgbox ausgeben kann das der user müll eingegeben hat, kann aber nicht zurück zu GUI_1.

  • Hi Lex,

    ich habs noch mal versucht, ohne die richtige Eingabe kommt man bei dem Script nicht weiter und generiert immer wieder eine Neuvorlage (logischer Aufbau, Plausibilitätsprüfung). :)

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("LEX", 633, 454, 192, 114)
    $Input1 = GUICtrlCreateInput("", 56, 32, 153, 21)
    $Button1 = GUICtrlCreateButton("Button1", 80, 104, 65, 33, 0)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1

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

    $nMsg = GUIGetMsg()
    Select
    Case $nMsg = $GUI_EVENT_CLOSE
    Exit
    Case $nMsg = $Button1
    $zahl1 = GUICtrlRead($Input1)
    If $zahl1 < 50 Then
    ;Hier wird das Script ausgeführt, wenn der Wert korrekt ist
    MsgBox(0, "OK", "Hier wird das Script ausgeführt, wenn der Wert korrekt ist!")
    Else
    MsgBox(0, "Hinweis", "Bitte nicht größer als 50!")
    EndIf
    EndSelect
    WEnd

    [/autoit]


    Ach ja und herzlich Willkommen hier ! ;)