Jump to content

GUICtrlSetOnEvent


SlimShady
 Share

Recommended Posts

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
Link to comment
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 :)
Link to comment
Share on other sites

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
Link to comment
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.

Link to comment
Share on other sites

  • Administrators

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).

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...