GUIGetMsg in Schleife abfragen

  • Hallo Gemeinde,

    ich befasse mich erst seit kurzer Zeit mit
    AutoIT. Und nun stehe ich vor einem Problem, wo ich nicht weiß, wie ich
    es lösen kann.
    Es geht um eine GUI, die beim betätigen des Knopfes
    "Start" eine Zählschleife hoch zählt ( 0 - 9 ). Ein weiterer Knopf
    "Stop" soll die Zählschleife vorher beenden.

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

    #include <rcc_dialogs.au3> ; Dialog $btnStart und $btnStop auf Form platziert

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

    while 1
    $nMsg = GUIGetMsg( 1 )
    Switch $nMsg[ 0 ]
    Case $GUI_EVENT_CLOSE
    Switch $nMsg[ 1 ]
    Case $frmMain
    ExitLoop
    EndSwitch
    Case $btnStart
    TestA()
    Case $btnStop
    MsgBox( 0, "abbruch", "Abbruch in GUI" )
    EndSwitch
    WEnd

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

    Func TestA()
    $i = 0
    While $i < 10
    ConsoleWrite( $i & @CRLF )
    $nMsg = GUIGetMsg( 1 )
    Switch $nMsg[ 0 ]
    Case $btnStop
    MsgBox( 0, "abbruch", "Abbruch in Zählschleife" )
    ExitLoop
    EndSwitch
    Sleep( 2000 )
    $i = $i +1
    WEnd
    EndFunc

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

    Leider
    wird das Event in der Zählschleife nicht berücksichtigt. Er wird erst
    nach dem Verlassen der Zählschleife wird der Event in der GUI-Loop
    ausgelöst.

    So, nun aber zur Frage: Wie kann man das Event in der Zählschleife abfangen?


    vG raiserle

    Zitat

    Wissen ist das einzige Gut, dass sich vermehrt, wenn man es teilt.

    Einmal editiert, zuletzt von raiserle (1. März 2013 um 19:50) aus folgendem Grund: close

  • da du nicht dein komplettes Skript gepostet hast, siehe:

    und sehr ungeduldig bist, siehe: [ offen ] GUIGetMsg in Schleife abfragen ein Hinweis: solange du nicht die nötigen Vorleistungen bringst wird dir wohl keiner helfen, denn warum sollte sich jemand mehr Mühe machen als du dir selbst?

    Einen kleinen Tipp gibt es: der Sleep ist schuld, schau dir einmal [Beispiel] mini-Downloader an, dabei sollte dir die richtige Idee kommen.

    mfg autoBert

    2 Mal editiert, zuletzt von autoBert (27. Februar 2013 um 17:12)

  • Hallo autoBert,

    danke für die Hilfe. Es funktioniert mit deinem Link.
    Frage:

    Zitat

    ... solange du nicht die nötigen Vorleistungen bringst...

    Was meinst du damit? Ich denke, ich habe alles nötige gepostet. Wie die GUI aufgebaut wird, ist doch für die Frage nicht relevant - und würde den Code doch nur unnütz aufblähen. Welche Form-Elemente vorhanden sind, hatte ich doch geschrieben.

    Für den doppel-Post hatte ich mich im Chat entschuldigt. Ich habe die Mitteilung nicht gelesen. Sry.


    vG raiserle

    Zitat

    Wissen ist das einzige Gut, dass sich vermehrt, wenn man es teilt.

  • danke für die Hilfe. Es funktioniert mit deinem Link.


    Schön dann ist dein Problem ja gelöst. Schön wäre es allerdings auch wenn du das Thema auf gelöst setzt.
    Dazu einfach den Eröffnungsbeitrag bearbeiten und den Präfix (nähe) Überschrift auf gelöst setzen und absenden.

    danke autoBert