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
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
;~ 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)
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
;~ FileOpenDialog öffnen
Func LexScriptAddButtonFileL()
;~ Öffnen eines FileOPenDialog
$var = FileOpenDialog("Bitte wählen Sie die *.isf-Datei", @WorkingDir, "Installationsscript (*.isf)", 1 + 2, $LexScriptAdd)
EndFunc ;==>LexScriptAddButtonFileL
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