GUISetEventMode und Verlassen einer Schleife

  • Hallo,

    ich habe ein ganz einfaches Problem:

    Wie kann ich die While Schleife verlassen, wenn der User den Button gedrückt hat.

    Exitloop funktioniert ja in der Func nicht...

    Danke.

    [autoit]

    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode",1)
    Global $cButton[3]
    GUICreate("Test",100,200)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    $cButton[0] = GUICtrlCreateButton("Button 1",20,20)
    GUICtrlSetOnEvent(-1,"_EventHandler")
    GUISetState()
    While 1
    Sleep(100)
    WEnd
    ; Wie komme ich jetzt nach dem Button hierher???
    MsgBox(0,"","Hier würde ich gerne hinkommen")
    Exit

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

    Func _EventHandler()
    Switch @GUI_CtrlId
    Case $cButton[0]
    MsgBox(0,"","Button 1 gedrückt")
    ; wie kann ich nun die While Schleife aus dem Hauptprogramm verlassen?
    EndSwitch
    EndFunc
    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • z.B.:

    [autoit]

    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode",1)
    Global $cButton[3]
    GUICreate("Test",100,200)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    $cButton[0] = GUICtrlCreateButton("Button 1",20,20)
    GUICtrlSetOnEvent(-1,"_EventHandler")
    GUISetState()
    $WaitForEvent = True
    While $WaitForEvent
    Sleep(100)
    WEnd
    ; Wie komme ich jetzt nach dem Button hierher???
    MsgBox(0,"","Hier würde ich gerne hinkommen")
    Exit

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

    Func _EventHandler()
    Switch @GUI_CtrlId
    Case $cButton[0]
    MsgBox(0,"","Button 1 gedrückt")
    ; wie kann ich nun die While Schleife aus dem Hauptprogramm verlassen?
    $WaitForEvent = False
    EndSwitch
    EndFunc
    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode", 1)
    Global $cButton[3]
    GUICreate("Test", 100, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $cButton[0] = GUICtrlCreateButton("Button 1", 20, 20)
    GUICtrlSetOnEvent(-1, "_EventHandler")
    GUISetState()
    While 1
    Sleep(100)
    WEnd
    ; Wie komme ich jetzt nach dem Button hierher???

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

    Func _EventHandler()
    Switch @GUI_CtrlId
    Case $cButton[0]
    MsgBox(0, "", "Button 1 gedrückt")
    _Exit()
    EndSwitch
    EndFunc ;==>_EventHandler
    Func _Exit()
    Exit
    EndFunc ;==>_Exit

    [/autoit]