Auführung trotz Sleep()

  • Hi leute,

    ich habe da mal eine Frage und zeige am besten mal den Code (gekürzt):

    [autoit]


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    meine()
    Case $Button2()
    msgbox(0,"","Ist nicht ansprechbar")

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

    EndSwitch
    WEnd

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

    Func meine()
    Sleep(5000)
    msgbox(0,"","5 Sekunden sind um")
    Exit

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

    EndFunc

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

    Ich habe eine einfache Form und 2 Buttons. Der eine Button ruft meine()-Funktion auf und wartet 5 Sekunden.
    Nun wollte ich wissen ob der andere Button nun in den 5 Sekunden ansprechbar ist, wie ich es mir gedacht hat ist er es nicht, erst wenn die
    5 Sekunden um sind und meine Funktion verlassen wurde.

    Aber wie kann man es anstellen das trotz einer Wartephase auf andere Steuerelemente zugegriffen werden kann oder geht das garnicht?

  • Hi,

    ok ein Ziel direkt habe ich nicht, aber wie soll man das denn anstellen wenn ich möchte das es so ausgeführt wird wie ich den Code geschrieben habe, also das der andere Button trotzdem reagiert? Hast du ein kleine Beispiel?


    Danke dir

  • Ich glaube das ganze könnte im GUIOnEventModus gehen. Bin mir aber nicht ganz sicher. ^^

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • Das wird ohne probleme im OnEvent Mode funktionieren.
    Plan B wäre folgender:

    Spoiler anzeigen
    [autoit]


    ;Alles ungetestet!

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

    While 1 * sleep(10)
    _Hauptschleife()
    WEnd

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

    Func _Hauptschleife()
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    meine()
    Case $Button2()
    msgbox(0,"","Ist nicht ansprechbar")
    EndSwitch
    EndFunc

    Func meine()
    $t = TimerInit()
    Do
    _Hauptschleife()
    Until TimerDiff($t) > 5000
    msgbox(0,"","5 Sekunden sind um")
    Exit
    EndFunc

    [/autoit]