Sign in to follow this  
Followers 0
SlimShady

GUICtrlSetOnEvent

10 posts in this topic

I tried it out and the function doesn't work.

Even the example in the help file doesn't work:

#include <GUIConstants.au3>

Opt("GUICoordMode",2)
Opt("GuiResizeMode", 1)

$parent1 = GuiCreate("Parent1")

$ok1 = GUICtrlCreateButton ("OK",  10, 30, 50)
GUICtrlSetOnEvent(-1, "OKPressed")

$cancel1 = GUICtrlCreateButton ( "Cancel",  0, -1)
GUICtrlSetOnEvent(-1, "CancelPressed")

GuiSetState(@SW_SHOW)


Do
    $msg = GuiGetMsg(1)       ; Get extra info in an array
Until $msg[0] = $GUI_EVENT_CLOSE


Func OKPressed()
    MsgBox(0, "OK Pressed", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE & " CtrlHandle=" & @GUI_CTRLHANDLE)
EndFunc

Func CancelPressed()
    MsgBox(0, "Cancel Pressed", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE & " CtrlHandle=" & @GUI_CTRLHANDLE)
EndFunc

Share this post


Link to post
Share on other sites



I tried it out and the function doesn't work.

Even the example in the help file doesn't work:

#include <GUIConstants.au3>

Opt("GUICoordMode",2)
Opt("GuiResizeMode", 1)

$parent1 = GuiCreate("Parent1")

$ok1 = GUICtrlCreateButton ("OK",  10, 30, 50)
GUICtrlSetOnEvent(-1, "OKPressed")

$cancel1 = GUICtrlCreateButton ( "Cancel",  0, -1)
GUICtrlSetOnEvent(-1, "CancelPressed")

GuiSetState(@SW_SHOW)
Do
    $msg = GuiGetMsg(1)      ; Get extra info in an array
Until $msg[0] = $GUI_EVENT_CLOSE
Func OKPressed()
    MsgBox(0, "OK Pressed", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE & " CtrlHandle=" & @GUI_CTRLHANDLE)
EndFunc

Func CancelPressed()
    MsgBox(0, "Cancel Pressed", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE & " CtrlHandle=" & @GUI_CTRLHANDLE)
EndFunc

<{POST_SNAPBACK}>

You need now to add a Opt("GuiOnEvent"Mode, 1) to allow onevent to be called :)

Share this post


Link to post
Share on other sites

Suggestion: add that to the help file, in the Remarks section of the function.

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Suggestion: add that to the help file, in the Remarks section of the function.

<{POST_SNAPBACK}>

Suggestion: Follow the development threads if you intend to use the beta and you'll see that Jon has already stated he hasn't updated the docs yet with those changes.

Edit: See.

Edited by Valik

Share this post


Link to post
Share on other sites

Allright I added AutoItSetOption("GUIOnEventMode", 1) and the function works as expected but the rest of my script stops working.

So I commented out all GUICtrlSetOnEvent() functions.

My script was still not working. So I commented out AutoItSetOption("GUIOnEventMode", 1) and my script works fine now.

I'm gonna try to make a sample script that shows this problem.

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

You can't have AutoItSetOption("GUIOnEventMode", 1) and a GuiGetMsg loop, I don't think. I believe it is one or the other.

Edited by this-is-me

Who else would I be?

Share this post


Link to post
Share on other sites

Oh didn't know that :)

I made a test script that shows my problems exactly.

Download below:

Share this post


Link to post
Share on other sites

One or the other.

Everything would get out of sync otherwise so the OnEvent mode turns off GuiGetMsg (it just returns 0 all the time). All other methods of having them both active that I thought about ended up with sync problems (GuiGetMsg not reacting to a close message quick enough and then Events still fireing afterwards that used OnEvent).

Share this post


Link to post
Share on other sites

OK. Thanks for clearing that up.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0