Exit Loop Wert anzeigen

  • Hallo,

    habe heute folgendes Problem:
    Ich möchte per Loop z.B. 20 Nr. Vorschläge machen.

    z.B. so:

    Spoiler anzeigen
    [autoit]


    for $i = 1 to 20

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


    SplashTextOn ("Auswahl",$i,400,400)
    Sleep(2000)
    next
    SplashOff()

    [/autoit]

    Folgendes sollte nun passieren:
    Wenn ich mit Return bestätige, dann soll diese Nr.
    ermittelt werden und der Loop soll verlassen werden.

    z.B. Sie haben die Nr. 3 gewählt (exit Loop...)

    Würde mich über Tipps freuen,
    komme irgendwie nicht weiter...


    Liebe Grüße
    ;) Ilse

    2 Mal editiert, zuletzt von Ilse (18. März 2012 um 12:36)

  • Z.B so?

    Spoiler anzeigen
    [autoit]

    Global $i, $bExitLoop = False
    HotKeySet("{ENTER}", "_Enter")
    SplashTextOn("Auswahl", 1, 400, 400)

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

    For $i = 1 To 20
    ControlSetText("Auswahl", "", "Static1", $i)
    _Sleep(2000)
    If $bExitLoop Then ExitLoop
    Next
    SplashOff()
    HotKeySet("{ENTER}")
    MsgBox(64, "Auswahl", "Sie haben die Nr. " & $i & " gewählt!")
    Exit

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

    Func _Enter()
    $bExitLoop = True
    EndFunc ;==>_Enter

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

    Func _Sleep($iTime)
    Local $Timer = TimerInit()
    Do
    Sleep(100)
    If $bExitLoop Then Return
    Until TimerDiff($Timer) >= $iTime
    EndFunc ;==>_Sleep

    [/autoit]
  • Hallo Veronesi,

    brauch vielleicht doch nochmal deine Hilfe.
    Ich möchte das ganze in eine Funktion packen!
    Das hat leider nicht geklappt.

    Toll wäre es, wenn ich per Hotkey die F11 Taste drücke
    alles startet und wenn F11 erneut gedrückt wird alles beendet wird.

    Spoiler anzeigen
    [autoit]


    Global $i, $bExitLoop = False
    HotKeySet("{ENTER}", "_Enter")
    HotKeySet("{F11}", "_Start")
    SplashTextOn("Auswahl", 1, 400, 400)

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

    Func _Start() ; hier startet die Funktion
    For $i = 1 To 20
    ControlSetText("Auswahl", "", "Static1", $i)
    _Sleep(2000)
    If $bExitLoop Then ExitLoop
    Next
    SplashOff()
    HotKeySet("{ENTER}")
    MsgBox(64, "Auswahl", "Sie haben die Nr. " & $i & " gewählt!")
    Exit
    EndFunc ;==>_Start

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

    Func _Enter()
    $bExitLoop = True
    EndFunc ;==>_Enter

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

    Func _Sleep($iTime)
    Local $Timer = TimerInit()
    Do
    Sleep(100)
    If $bExitLoop Then Return
    Until TimerDiff($Timer) >= $iTime
    EndFunc ;==>_Sleep

    [/autoit]

    Das geht leider so nicht!
    Huh bin die ganze Zeit schon am probieren...

    Hier ist nochmal dein Code

    Spoiler anzeigen
    [autoit]


    Global $i, $bExitLoop = False
    HotKeySet("{ENTER}", "_Enter")
    SplashTextOn("Auswahl", 1, 400, 400)

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

    For $i = 1 To 20
    ControlSetText("Auswahl", "", "Static1", $i)
    _Sleep(2000)
    If $bExitLoop Then ExitLoop
    Next
    SplashOff()
    HotKeySet("{ENTER}")
    MsgBox(64, "Auswahl", "Sie haben die Nr. " & $i & " gewählt!")
    Exit

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

    Func _Enter()
    $bExitLoop = True
    EndFunc ;==>_Enter

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

    Func _Sleep($iTime)
    Local $Timer = TimerInit()
    Do
    Sleep(100)
    If $bExitLoop Then Return
    Until TimerDiff($Timer) >= $iTime
    EndFunc ;==>_Sleep

    [/autoit]

    Liebe Grüße
    ;) Ilse

  • Sorry, hab's erst jetzt gelesen.
    Wenn ich Dich richtig verstanden habe, so willst Du zuerst die F11 Taste drücken.
    Erst dann wird hochgezählt. Wenn Du dann Enter drückst, wird die aktuelle Zahl ausgegeben und das Programm beendet. Wenn Du aber vor dem Enter nochmals F11 drückst, so soll das Programm beendet werden?

    Spoiler anzeigen
    [autoit]

    Global $i, $bExitLoop = False
    HotKeySet("{F11}", "_Start")
    While True
    Sleep(100)
    WEnd

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

    Func _Start() ; hier startet die Funktion
    HotKeySet("{ENTER}", "_Enter")
    HotKeySet("{F11}", "_Exit")
    SplashTextOn("Auswahl", 1, 400, 400)
    For $i = 1 To 20
    ControlSetText("Auswahl", "", "Static1", $i)
    _Sleep(2000)
    If $bExitLoop Then ExitLoop
    Next
    SplashOff()
    HotKeySet("{ENTER}")
    MsgBox(64, "Auswahl", "Sie haben die Nr. " & $i & " gewählt!")
    Exit
    EndFunc ;==>_Start

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

    Func _Enter()
    $bExitLoop = True
    EndFunc ;==>_Enter

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

    Func _Sleep($iTime)
    Local $Timer = TimerInit()
    Do
    Sleep(100)
    If $bExitLoop Then Return
    Until TimerDiff($Timer) >= $iTime
    EndFunc ;==>_Sleep

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

    [/autoit]