Hi,
ich versuche gerade in einer Funktion ein GUICtrlSetOnEvent verstehe aber nicht ganz warum das nur teilweise geht.
Folgendes Script geht:
Spoiler anzeigen
#include<GUIConstantsEx.au3>
Opt("GuiOnEventMode", 1)
$Gui = GUICreate("Beispiel", 100, 100)
GUISetState(@SW_SHOW)
$starten = GUICtrlCreateButton("start", 0, 0)
GUICtrlSetOnEvent(-1, "start")
$test = GUICtrlCreateButton("test", 0, 80)
GUICtrlSetState(-1, $GUI_HIDE)
start()
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
WEnd
Func start()
MsgBox(0, "", "Funktion start")
GUICtrlSetState(-1, $GUI_SHOW)
GUICtrlSetOnEvent(-1, "test")
While 1
Sleep(100)
WEnd
EndFunc ;==>start
Func test()
MsgBox(0, "", "Funktion test")
EndFunc ;==>test
Sprich beim Klicken auf den Button "start" wird die "start"-Funktion ausgeführt und beim klick auf den Button "test" wird die "test"-Funktion ausgeführt.
Wenn ich aber nun das Separate aufrufen von "start" vor der while entferne wird zwar weiterhin beim klick auf den Button "start" die "start"-Funktion ausgeführt aber die "test"-Funktion nichtmehr:
Spoiler anzeigen
#include<GUIConstantsEx.au3>
Opt("GuiOnEventMode", 1)
$Gui = GUICreate("Beispiel", 100, 100)
GUISetState(@SW_SHOW)
$starten = GUICtrlCreateButton("start", 0, 0)
GUICtrlSetOnEvent(-1, "start")
$test = GUICtrlCreateButton("test", 0, 80)
GUICtrlSetState(-1, $GUI_HIDE)
;~ start()
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
WEnd
Func start()
MsgBox(0, "", "Funktion start")
GUICtrlSetState($test, $GUI_SHOW)
GUICtrlSetOnEvent($test, "test")
While 1
Sleep(100)
WEnd
EndFunc ;==>start
Func test()
MsgBox(0, "", "Funktion test")
EndFunc ;==>test
Ich steh total auf dem Schlauch, warum das nicht geht.
Edit: Die While in der "start" soll drin bleiben