GUICtrlSetOnEvent funktioiert in zweiter GUI nicht

  • Guten Tag liebe Community,

    ich hatte AutoIt vor Jahren entdeckt, einige kleine Projekte damit bewerkstelligt und es dann leider eine ganze Weile wieder vergessen.
    Nun bin ich im Studium und muss ein kleines Programm für eine Studie von mir schreiben.

    Nach langen Googlesuchen und mit Hilfe des Koda Form Designer habe ich nun den Anfang gemacht.
    Erstmal soll das Ganze funktionieren, das Aussehen kommt danach.

    Mein Problem ist, dass sich der $Button11 der zweiten GUI ($Anleitung) zwar drücken lääst, aber nicht die nächste Function triggert.
    Alleinstehend ohne den Rest des Projektes funktioniert es....

    Edit: Da das Highlighting hier anscheinend nicht zu 100% funktioniert ... -> http://pastebin.com/3CQw5ccD

    Spoiler anzeigen

    P.S.: Ich bin mir sicher, vieles geht besser und einfacher. Für Verbesserungen bin ich immer offen :)

    Danke schonmal,
    Nico

  • Der kram:

    • #include <ButtonConstants.au3>
    • #include <EditConstants.au3>
    • #include <GUIConstantsEx.au3>
    • #include <StaticConstants.au3>
    • #include <WindowsConstants.au3>
    • #Region ### START Koda GUI section ### Form=
    • Opt("GUIOnEventMode", 1)

    hat in Funktionen so nichts verloren (Zeile 7 nur in Ausnahmen zum wechseln des Modus). Das solltest du an den Anfang der Datei packen und aus den beiden Funktionen, wo die Guis erstellt werden, entfernen. Nur weil Koda das mitgibt heißt es noch lange nicht, dass es dahin gehört...
    Wenns schick werden soll rate ich persönlich auch von Koda ab. Wenn man die Controls selbst erstellt wird es oft ordentlicher (auch vom Code her).

    Dein Problem kommt auch vom Copy&Paste aus Koda. Deine 2te Gui (Anleitung) wird mit einem Event betreten. In dem Event befindet sich eine while-Schleife. Events sollten aber so schnell wie möglich verlassen werden. Wenn du die Schleife weglässt sollte es funktionieren. Events werden nacheinander abgearbeitet, deshalb muss das vorherige Event verlassen werden, bevor das nächste bearbeitet werden kann.
    Im normalfall hat man im OnEventModus auch nur EINE While-Schleife die die ganze Zeit läuft.
    Standartaufbau:

    (Kann kleinere Syntax-Fehler enthalten, bin grad auf Linux->kein AutoIt)

    MfG Kanashius