McGod Posted September 16, 2006 Posted September 16, 2006 (edited) Ok, so I'm making a login etc, and I seem to have a Event Button Problem. My first GUI (Connecting GUI) buttons work fine. I go through that gui use a GUIDelete () Then run the second GUI, though I click on the button but nothing happens :\ I'm using Events. All code as of now expandcollapse popup#region hi Global $name = "Abaddon", $G_Connect, $Main, $Local, $B_Connect #include <String.au3> #include <GUIConstants.au3> TCPStartup () Opt("GUIOnEventMode", 1) GUIConnect () #endregion Func GUIconnect () $G_Connect = GUICreate($name & "-Connecting", 412, 556, 193, 115) GUISetFont(10, 800, 0, "Trebuchet MS") GUICtrlCreateGroup("Connecting", 8, 8, 393, 537) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") GUICtrlCreateGroup("Server List", 16, 32, 377, 161) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") $Main = GUICtrlCreateRadio("Main", 32, 56, 113, 17) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") $Local = GUICtrlCreateRadio("Local", 32, 80, 113, 17) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") GUICtrlCreateGroup("", -99, -99, 1, 1) $B_Connect = GUICtrlCreateButton("Connect", 152, 200, 91, 25, 0) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") GUICtrlCreateLabel("Choose a server to log on to then hit connect.", 56, 240, 285, 22) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") GUICtrlSetOnEvent ( $B_Connect, "connect" ) GUISetOnEvent ( $GUI_EVENT_CLOSE, "GUIExit" ) GUISetState(@SW_SHOW) While 1 Sleep(100) WEnd EndFunc Func connect () Select Case GUICtrlRead ( $Main ) = $GUI_CHECKED $ip = TCPNameToIp ( "abaddon.hopto.org" ) Case GUICtrlRead ( $Local ) = $GUI_CHECKED $ip = @IPAddress1 Case Else MsgBox ( 1, $name & "-Error", "You must choose a server!" ) Return EndSelect $sock = TCPConnect ( $ip, 2548 ) If $sock = -1 Then MsgBox ( 1, $name & "-Error", "The server you are trying to connect to is offline" & @CRlf & "Please check the Outages forum" ) Return Else GUIDelete () loginscreen () EndIf EndFunc Func GUIExit () Exit EndFunc Func loginscreen () $G_Login = GUICreate($name & "-Login", 405, 523, 194, 114) GUISetFont(10, 800, 0, "Trebuchet MS") GUICtrlCreateGroup("Login", 8, 8, 385, 505) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") $I_Username = GUICtrlCreateInput("Username", 136, 64, 121, 26) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") GUICtrlCreateLabel("Username", 136, 40, 65, 22) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") GUICtrlCreateLabel("Password", 136, 104, 62, 22) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") $I_Password = GUICtrlCreateInput("Password", 136, 128, 121, 26) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") GUICtrlCreateGroup("Buttons", 104, 168, 185, 193) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") $B_Submit = GUICtrlCreateButton("Submit", 120, 192, 155, 25, 0) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") $B_NewAccount = GUICtrlCreateButton("New Account", 120, 224, 155, 25, 0) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") $B_ReturnC = GUICtrlCreateButton("Return", 120, 256, 155, 25, 0) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") $B_Exit = GUICtrlCreateButton("Exit", 120, 288, 155, 25, 0) GUICtrlSetFont(-1, 10, 800, 0, "Trebuchet MS") GUICtrlSetOnEvent ( $B_Submit, "login" ) GUICtrlSetOnEvent ( $B_NewAccount, "newacct" ) GUICtrlSetOnEvent ( $B_ReturnC, "GUIreturn" ) GUICtrlSetOnEvent ( $B_Exit, "GUIExit" ) GUISetOnEvent ( $GUI_EVENT_CLOSE, "GUIExit" ) GUISetState(@SW_SHOW) While 1 Sleep(100) WEnd EndFunc Func GUIReturn () Switch @GUI_CtrlId Case $B_ReturnC GUIDelete () GUIConnect () Case Else ;; EndSwitch EndFunc Func login () MsgBox ( 1, "Login", "Login" ) EndFunc Func newacct () MsgBox ( 1, "Acct", "New ACct" ) EndFunc Its an autoit game client atm. though I just started. TCPStartup () If @Error = 1 then Exit MsgBox ( 1, "Error", "Character Server failed to start!" ) $sock = TCPListen ( @IpAddress1, "2548" ) If $sock = -1 Then Exit MsgBox ( 1, "Error", "Character Server failed to start!" ) While 1 $accept = TCPAccept ( $sock ) Sleep (100) WEnd OH and how would i make a universal $GUI_EVENT_CLOSE for all my GUIs Edited September 16, 2006 by Chip [indent][center][u]Formerly Chip[/u][/center]~UDFs~[/indent][u]IRC.au3 - Allows you to connect to IRC ServersINetCon.au3 - Connects/Disconnects/Check Status of InternetHardware Key - Creates a unique hardware hashScriptComm - Allows you to communicate between scripts using WM_COPYDATA[/u][indent]~Programs~[/indent][indent]SimonAu3ForumsIRC Bot~Web Site~Web Autoit Example[/indent][indent][b][/b][/indent][u][/u]
Moderators SmOke_N Posted September 16, 2006 Moderators Posted September 16, 2006 (edited) I ran into this problem the other day... I am not sure exactly what the problem is, if there is a problem, and if there is, if it's been reported. Here's a small example script (always best to do that than post long drawn out code that no one wants to use to debug).expandcollapse popupOpt('GUIONEVENTMODE', 1) Global $SUBBUTTON, $MAINBUTTON _MainGUI() Func _MainGUI() $MAINGUI = GUICreate('MY MAIN GUI', 200, 100) $MAINBUTTON = GUICtrlCreateButton('SWITCH TO SUB GUI', 35, 35, 125, 30) GUISetOnEvent(-3, '_EXITNOW', $MAINGUI) GUICtrlSetOnEvent($MAINBUTTON, '_MAINEVENTS') GUISetState() While 1 Sleep(1000) WEnd EndFunc Func _SUBGUI() $SUBGUI = GUICreate('MY SUB GUI', 200, 100) $SUBBUTTON = GUICtrlCreateButton('SWITCH TO MAIN GUI', 35, 35, 125, 30) GUISetOnEvent(-3, '_EXITNOW', $SUBGUI) GUICtrlSetOnEvent($SUBBUTTON, '_SUBEVENTS') GUISetState(@SW_SHOW, $SUBGUI) While 1 Sleep(1000) WEnd EndFunc Func _MAINEVENTS() Switch @GUI_CtrlId Case $MAINBUTTON GUIDelete(@GUI_WinHandle) _SUBGUI() EndSwitch EndFunc Func _SUBEVENTS() Switch @GUI_CtrlId Case $SUBBUTTON GUIDelete(@GUI_WinHandle) _MainGUI() EndSwitch EndFunc Func _EXITNOW() Exit EndFuncI was hiding the main window initially, moved to setting oneventmode to 0 and then 1 again within the function, I tried to disable the original window, and then decided to try and just delete the original gui (the above example shows)... none of the 4 above methods worked for myself. It's like it's not letting go of the first GUI handle. Edit: Oh... lol - My solution was to disable OnEventMode when I went to my sub gui, and switch to GUIGetMsg() and switch/endswitch. Then Enable OnEventMode upon my return to the original GUI. Edited September 16, 2006 by SmOke_N Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.
McGod Posted September 16, 2006 Author Posted September 16, 2006 I found my error kinda like yours: See I did one of theses GUI 1 loaded GUI 2 using an OnEvent, which meant my whole script was interupted after i loaded GUI 2. So i loaded all my guis at the beginning and use States. Works fine [indent][center][u]Formerly Chip[/u][/center]~UDFs~[/indent][u]IRC.au3 - Allows you to connect to IRC ServersINetCon.au3 - Connects/Disconnects/Check Status of InternetHardware Key - Creates a unique hardware hashScriptComm - Allows you to communicate between scripts using WM_COPYDATA[/u][indent]~Programs~[/indent][indent]SimonAu3ForumsIRC Bot~Web Site~Web Autoit Example[/indent][indent][b][/b][/indent][u][/u]
Moderators SmOke_N Posted September 16, 2006 Moderators Posted September 16, 2006 I found my error kinda like yours:See I did one of thesesGUI 1 loaded GUI 2 using an OnEvent, which meant my whole script was interupted after i loaded GUI 2.So i loaded all my guis at the beginning and use States. Works fine Yeah, that's a tad inconvenient I think for me, I'll stick to good old GUIGetMsg() for Multiples, or maybe the work around I stated above if I'm feeling frisky.... I am thinking I remember Valik saying something about this several months ago, but I can't remember where the thread was or when it was for that matter. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.
Valuater Posted September 16, 2006 Posted September 16, 2006 wow, i looked at this for a while... i never have seen this before i guess i have always set the GUI's first then used show/hide etc 8)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now