Zweite GUI aus erster GUI öffnen und schließen funktioniert nicht ganz richtig

  • Hallo zusammen,

    hoffe mich mit der Überschrift klar auszudrücken. Ich habe bisher immer nur kleine Tools gemacht, die nur eine einzige GUI brauchten. Jetzt möchte ich gerne beim Aufruf des Menüpunkts "Administration" eine zweite GUI öffnen.

    Bisher habe ich das so verwirklicht. In der While-Wend Schleife folgender Case eingebaut

    [autoit]

    Case $GUI_Menue_Datei_Administration
    Local $passwd = InputBox("Administrative Anmeldung: ", "Bitte Passwort eingeben.", "", "*")
    If @error <> 1 Then
    If $passwd = "geheim" Then
    ;~ MsgBox(0, "Passwort: ", "wurde richtig eingegeben, es könnte jetzt eine administrative Funktion aufgerufen werden")
    _KCLAdmin()
    Exit
    Else
    MsgBox(0, "Passwort: ", "wurde NICHT richtig eingegeben !")
    Exit
    EndIf
    EndIf

    [/autoit]


    Die Funktion _KCLAdmin sieht so aus:

    [autoit]

    Func _KCLAdmin(); eine eigene Admin GUI, wo der Ferienmodus aktiv oder deaktiv gesetzt werden kann, sowie Bonus Minuten vergeben werden können
    Global $GUI_Admin = GUICreate("Administrationsbereich von KidsControlLight", 300, 300, 300, 100); ==> Zeichnet die GUI vom Adminbereich
    Local $msg2
    GUISetState();==> Zeigt GUI an
    While 2
    $msg2 = GUIGetMsg(); ==> Prüft Aktion in GUI
    Select
    Case $msg2 = -3 ; -3 = X gedrückt
    GUIDelete($GUI_Admin)
    EndSelect
    WEnd
    EndFunc ;==>_KCLAdmin

    [/autoit]

    Jetzt das Problem. Ich gehe auf den Adminmenüpunkt, gebe das Passwort ein und die neue zweite GUI öffnet sich. Es stecken noch keine Funktionen drin, aber wenn ich die neue GUI mit dem X beenden will, geht die 2. GUI zu, aber die 1. GUI kann dann nicht mehr bedient werden. Alle Buttons usw reagieren nicht mehr auf die Befehle, die dahinter stecken.

    Vielleicht ist mein Gedankenansatz auch völlig falsch, oder es gibt andere Befehle, aber wie gesagt es ist das erste mal ...

    Gruss Hassan

    Einmal editiert, zuletzt von HassanMullah (31. August 2012 um 15:58) aus folgendem Grund: ExitLoop war die Lösung

  • Ist ja auch logisch, da du zwar GUIDelete aufrufst, aber die Schleife nicht verlässt.
    D.h. einfach nach GUIDelete($GUI_Admin) ein Exitloop einfügen und es sollte gehen.

    MfG, James

    • Offizieller Beitrag
    Zitat von James1337

    D.h. einfach nach GUIDelete($GUI_Admin) ein Exitloop einfügen und es sollte gehen.


    Siehe unterstrichenes Wort;-)