Hallo,
nachdem die Suche leider nichts schlüssiges erbracht hat, hier meine Frage:
Ich erstelle einige unterschiedliche Fenster, stelle alle bis auf das Hauptfenster dabei auf Hide.
z.B.
GUISetState(@SW_HIDE,$SETTINGS_FORM)
[/autoit]Direkt nach den includes hab ich GUIOnEventMode auf 1 gestellt.
[autoit]Opt("GUIOnEventMode",1)
[/autoit]Bei GUICreate schreibe ich:
[autoit]GUISetOnEvent($GUI_EVENT_CLOSE, "EndTool",$SETTINGS_FORM)
[/autoit]Bei den Buttons:
[autoit]GUICtrlSetOnEvent($BTN_SAVE, "WriteSettings")
[/autoit]Das ganze funktioniert zunächst wie gewünscht.
Rufe ich nun aber eine Funktion mit einer Schleife auf, komme ich aus dieser nicht wieder raus ehe diese zu Ende ist.
Was ja der Sinn war wieso ich GUIOnEventMode verwende.
Auf den Abbrechen Button habe ich mit GUICtrlSetOnEvent eine Funktion gelegt, in dieser stelle ich eine Variable auf True und prüfe innerhalb der Schleife ob diese True ist, wenn ja dann Exitloop.
Geht leider nicht.
Habe zusätzlich nun eine Messagebox in die Abbrechen Funktion geschrieben, Ergebnis:
Die Funktion wird ausgeführt, wenn die Schleife beendet ist.
Egal ob ich die Schleife nun als while, for oder do schreibe...das Ergebnis ist immer wieder, erst nach Ablauf der Schleife wird die Abbrechen Funktion ausgeführt.
Hab dann noch Switch probiert, weil ich dachte das Fenster wäre nicht aktiv.
Was denke ich aber Quatsch ist, da ich das ja aktiviert habe und gerade benutze:
GUISwitch($SETTINGS_FORM)
GUISetState()
Das Beispiel aus der Hilfe funktioniert allerdings einwandfrei, nur nicht in meinem Script.
Gibt es da ein Problem mit unterschiedlichen Fenstern oder hat einer eine Idee voran es liegen könnte ?
Nutze derzeit eine Checkbox zum abbrechen und prüfe innerhalb der Funktion ob diese Checked ist oder nicht.
Funktioniert, aber möchte doch gerne wissen was ich falsch gemacht habe.
Danke!