OnEvent Funktionen funktionieren in GUI 2. Ebene nicht

  • Hallo,

    erstmal großes Lob an des Forum, hier konnte ich mir bereits einige Male gute Hilfestellungen "erlesen".
    Jetzt bin ich bei meinem Script allerdings an einer Stelle, bei der ich nicht mehr weiter weiß:

    Der Übersichtlichkeit halber und wegen einiger Funktionen habe ich mein Script vom Message-Loop in den OnEvent Mode um geschrieben.
    Das Script erstellt mehrer GUIs, wobei allerding nur die Main-GUI sichtbar ist. Die anderen werden nur nach Bedarf zugeschaltet.
    Das klappt auch wunderbar, allerdings funktionieren die Controls (Buttons zum größten Teil) der "Unter"-GUIs nicht.
    Ich weiß im Moment leider nicht woran das liegen könnte.
    Vielleicht fällt euch ja was auf!
    Besten Dank im Voraus

    P.S.: Handelt sich um stark gekürzten Code aus meinem Programm, hoffe das reicht um mein Problem darzustellen!

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include <WindowsConstants.au3>

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

    ;~ MainGui Erstellen
    $Main = GUICreate("AutoPrint Distributor", 579, 571, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "SystemEvents")
    $T1ButtonLexScriptInst = GUICtrlCreateButton("Lexmark Script-Installation", 41, 456, 193, 25, 0)
    GUICtrlSetOnEvent($T1ButtonLexScriptInst, "ButtonLexScriptInst")
    GUISetState(@SW_SHOW)
    ;~ 2te Gui erstellen
    $LexScriptAdd = GUICreate("Lexmark Script-Installation", 430, 213, 213, 172, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "SystemEvents")
    $LexScriptAddButtonFileL = GUICtrlCreateButton("", 372, 18, 41, 25, $BS_ICON)
    GUISetOnEvent($LexScriptAddButtonFileL, "LexScriptAddButtonFileL", $LexScriptAdd)
    GUISetState(@SW_HIDE)

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

    Opt("GUIOnEventMode", 1)
    While 1
    Sleep(1000) ; Idle around
    WEnd
    ;~ Bei Druck auf Button 2te GUI hervorholen
    Func ButtonLexScriptInst()
    GUISwitch($LexScriptAdd)
    GUISetState(@SW_SHOW)
    EndFunc ;==>ButtonLexScriptInst

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

    ;~ FileOpenDialog öffnen
    Func LexScriptAddButtonFileL()
    ;~ Öffnen eines FileOPenDialog
    $var = FileOpenDialog("Bitte wählen Sie die *.isf-Datei", @WorkingDir, "Installationsscript (*.isf)", 1 + 2, $LexScriptAdd)
    EndFunc ;==>LexScriptAddButtonFileL

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

    Func SystemEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Select
    Case @GUI_WinHandle = $Main
    Exit
    Case Else
    GUISetState(@SW_HIDE, @GUI_WinHandle)
    GUISetState(@SW_SHOW, $Main)
    EndSelect
    EndSelect
    EndFunc ;==>SystemEvents

    [/autoit]

    Einmal editiert, zuletzt von presgomacho (27. August 2009 um 17:44)

  • :cursing: Ich könnt ausrasten....

    Naja, nach 8h rumdoktoren und bei 1600 Zeilen kann man schon mal den Überblick verlieren.
    Das war jetzt definitiv mein Zeichen um in den wohlverdienten Feierabend zu gehen!

    Besten Dank!