Input Box abbrechen

  • Hallo,

    ich hab in meinem Programm mehrere Input Boxen nacheinander, wo der Benutzer Benutzernamen und Kennwörter eingeben kann.
    Nun möchte ich es so einrichten, das der Benutzer die Inputboxen Canceln kann um auf die nächsten zugreifen zu können.
    Mit einer Input Box hab ich das so geregelt:

    Spoiler anzeigen
    [autoit]


    $input_1 = InputBox("Eingabe", "Input 1:", "")
    If @error = 1 Then
    Return
    EndIf
    IniWrite(StringTrimRight(@ScriptFullPath, 4) & ".ini", "Sektion 1", "Input 1", $input_1)

    [/autoit]


    Wenn jetzt aber mehrere Input Boxen nacheinander abgearbeitet werden sollen bricht er die Func komplett ab.
    Gibts da einen anderen Rückgabewert den ich benutzen kann, um zum nächsten Eingabefenster zu gelangen, ohne das
    der bereits vorhandene Wert in der .ini mit einem leeren Wert überschrieben wird, so wie es bisher passiert wenn in
    der Input Box auf Cancel geklickt wird, oder gibt es sonst eine elegantere Lösung?

    Danke im voraus

    Einmal editiert, zuletzt von Herr Bert (14. August 2013 um 12:57)

  • Hi,

    versuch's mal so:

    Spoiler anzeigen
    [autoit]


    ;~ Variable-Namen sind übenommen

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

    #NoTrayIcon
    Dim $Input_1, $Input_2, $input_3
    _Input_1()

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

    #Region --- Input1
    Func _Input_1()
    $Input_1 = InputBox("Eingabe", "Input1:", "")
    Select
    Case @Error = 0 ; OK - Taste gedrückt.
    ;~ MsgBox (0, "Debugging1", "Okay")
    _Input_2()
    Case @Error = 1 ; Abbrechen gedrückt
    ;~ MsgBox (0, "Debugging2", "Okay")
    $Input_1 = "Deafult1" ; Hier eine alternative / standartisiert Eingabe setzen
    _Input_2()
    EndSelect
    #EndRegion --- Input1
    EndFunc

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

    #Region --- Input2
    Func _Input_2()
    $Input_2 = InputBox("Eingabe", "Input2:", "")
    Select
    Case @Error = 0 ; OK - Taste gedrückt.
    ;~ MsgBox (0, "Debugging3", "Okay")
    _Input_3()
    Case @Error = 1 ; Abbrechen gedrückt
    ;~ MsgBox (0, "Debugging4", "Okay")
    $Input_2 = "Deafult2" ; Hier eine alternative / standartisiert Eingabe setzen
    _Input_3()
    EndSelect
    #EndRegion --- Input2
    EndFunc

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

    #Region --- Input3
    Func _Input_3()
    $Input_3 = InputBox("Eingabe", "Input3:", "")
    Select
    Case @Error = 0 ; OK - Taste gedrückt.
    ;~ MsgBox (0, "Debugging5", "Okay")
    _EndOfScript()
    Case @Error = 1 ; Abbrechen gedrückt
    $Input_3 = "Deafult3" ; Hier eine alternative / standartisiert Eingabe setzen
    ;~ MsgBox (0, "Debugging6", "Okay")
    _EndOfScript()
    EndSelect
    #EndRegion --- Input3
    EndFunc

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

    #Region --- EndOfScript
    Func _EndOfScript()
    ;~ MsgBox (0, "Debugging7", "Okay")
    IniWrite(@ScriptDir & "\Test.ini", "Sektion 1", "Input 1", $input_1)
    IniWrite(@ScriptDir & "\Test.ini", "Sektion 2", "Input 2", $input_2)
    IniWrite(@ScriptDir & "\Test.ini", "Sektion 3", "Input 3", $input_3)
    ;~ MsgBox (0, "Debugging8", "Okay")
    Sleep (500)
    Exit
    EndFunc
    #endregion --- EndOfScript

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

    Habe die Pfade der Ini-Datei zum Testen geändert. Kannst du ja wieder anpassen.
    Das gleiche gilt natürlich für die "Defaults" ;)

    Die auskommentierten MsgBoxen kannste natürlich löschen.

    Wolf4Life

  • Wie wäre es, wenn du nur in die ini schreibst wenn der Rückgabewert NICHT leer ist?

    Also mit "if not @error then iniwrite"

    LG Orion

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

    Einmal editiert, zuletzt von Orion (14. August 2013 um 16:30)

  • Hallo,

    erstmal vielen Dank für eure Antworten. Für meine jetzigen Bedürfnisse reicht mir die Lösung von Orion vollkommen aus.
    Das heißt aber nicht das mir die Antworten von Wolfmoon und funkey in Zukunft nicht von Nutzen sein werden :)
    Bin ja noch am lernen und ziehe daher die einfachste Lösung vor ;)

    MfG

  • Haja, schön dass ich helfen konnte ^^

    Bin halt faul, und ziehe daher erstmal die einfachste Lösung immer vor :whistling:

    LG
    Orion :D

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)