winkot Posted October 12 Share Posted October 12 What is the difference between MessageLoop and OnEvent ? I made two scripts: #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region (=== GUI generated by GuiBuilderPlus 1.3.0 ===) Global $hGUI = GUICreate("MyGUI", 400, 350, 771, 302) Global $Button_1 = GUICtrlCreateButton("Кнопка 1", 120, 160, 161, 41) GUICtrlSetFont(-1, 15) Global $Button_2 = GUICtrlCreateButton("Кнопка 2", 120, 239, 161, 41) GUICtrlSetFont(-1, 15) #EndRegion (=== GUI generated by GuiBuilderPlus 1.3.0 ===) GUISetState(@SW_SHOWNORMAL) While 1 Switch GUIGetMsg() Case $Button_1 Sleep(5000) Beep(500, 200) Case $Button_2 Beep(1000, 100) Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd And expandcollapse popupOpt("GUIOnEventMode", 1) #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region (=== GUI generated by GuiBuilderPlus 1.3.0 ===) Global $hGUI = GUICreate("MyGUI", 400, 350, 771, 302) Global $Button_1 = GUICtrlCreateButton("Кнопка 1", 120, 160, 161, 41) GUICtrlSetFont(-1, 15) Global $Button_2 = GUICtrlCreateButton("Кнопка 2", 120, 239, 161, 41) GUICtrlSetFont(-1, 15) GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") GUICtrlSetOnEvent($Button_1, "Func1") GUICtrlSetOnEvent($Button_2, "Func2") #EndRegion (=== GUI generated by GuiBuilderPlus 1.3.0 ===) GUISetState(@SW_SHOWNORMAL) While 1 Sleep(100) WEnd Func Func1() Sleep(5000) Beep(500,200) EndFunc Func Func2() Beep(1000,100) EndFunc Func _Exit() GUIDelete() Exit EndFunc ;==>_Exit Both behave the same. When I press Button 1, until its function is completed, the function of Button 2 does not work. So how do these two modes differ? Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 12 Moderators Share Posted October 12 winkot, I suggest you read the <GUI Reference> section of the Help file which goes into some detail as to the differences between the 2 modes. Basically IMO it is down to personal choice. You mention that you cannot interrupt a running function in either mode. This is not strictly the case - can I point you to the "Interrupting a running function" tutorial in the Wiki where you will learn just how you can do this. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
argumentum Posted October 12 Share Posted October 12 4 hours ago, winkot said: When I press Button 1, until its function is completed, the function of Button 2 does not work. Look in my signature for "fork". It may just do what you want to have. Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
winkot Posted October 12 Author Share Posted October 12 1 hour ago, argumentum said: "fork" Where I can find it? Link to comment Share on other sites More sharing options...
argumentum Posted October 12 Share Posted October 12 5 minutes ago, winkot said: Where I can find it? Look in my signature, search for "fork". But never mind. I don't think you'll be able to use it. Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
winkot Posted October 12 Author Share Posted October 12 (edited) 2 hours ago, Melba23 said: I suggest you read the <GUI Reference> section of the Help file I can not find answer in my question at the Help file. In my opinion the global difference is that OnEvent can interrupt process. And it all. Edited October 12 by winkot Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 12 Moderators Share Posted October 12 winkot, Quote In my opinion the global difference is that OnEvent can interrupt process And you are wrong. I suggest you go and read both of the links I posted above. The first points to the Help file and explains the fundamental difference between the 2 modes , while the second points to the Wiki tutorial which explains how you can interrupt functions in either mode. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
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