mr-es335 Posted October 9 Posted October 9 (edited) Good day, I am in the process of converting my existing menu system to an OnEvent based system. I have developed [...hopefully] 7 menu systems - with each example building upon another. Following is what I have: MV1a: 2 Forms, 1 Menu, 1 Menu Item ----------------------------------------------------------- MV2a: 3 Forms, 2 Menus, 1 Menu Item ----------------------------------------------------------- MV3b: 2 Forms, 1 Menu, 1 Submenu, 2 Menu Items ----------------------------------------------------------- MV4a: 3 Forms, 2 Menus, 2 Menu Items [One Exit] ----------------------------------------------------------- I would appreciate it if someone would peruse these examples - letting me know if such examples are functioning as expected. As always...any assistance in this matter would be greatly appreciated! Spoiler ; ----------------------------------------------- ;~ MV1a: 2 Forms, 1 Menu, 1 Menu Item ; ----------------------------------------------- #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <MsgBoxConstants.au3> ; ----------------------------------------------- Opt("GUIOnEventMode", 1) ; ----------------------------------------------- Global $Form1, $sForm1Item1 Global $Form2, $sForm2Item1 ; ----------------------------------------------- Forms() ; ----------------------------------------------- Func Forms() $Form1 = GUICreate("Form 1", 150, 25, -1, -1) GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseForm") ; ----------------------------------------------- $Form2 = GUICtrlCreateMenu("Form 2") GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseForm") $sForm2Item1 = GUICtrlCreateMenuItem("Item 1", $Form2) GUICtrlSetOnEvent($sForm2Item1, "_Form2ColRow") ; ----------------------------------------------- GUISwitch($Form1) GUISetState(@SW_SHOW) While 1 Sleep(10) WEnd EndFunc ;==>Forms ; ----------------------------------------------- Func _Form2ColRow() Switch @GUI_CtrlId Case $sForm2Item1 Form2Item1() GUISetState(@SW_HIDE, $Form2) GUISwitch($Form1) EndSwitch EndFunc ;==>_Form2ColRow ; ----------------------------------------------- Func Form2Item1() GUISwitch($Form2) GUISetState(@SW_SHOW) MsgBox($MB_OK, "", "Form 2, Item 1...", 1) EndFunc ;==>Form2Item1 ; ----------------------------------------------- Func _CloseForm() Switch @GUI_WinHandle Case $Form1 MsgBox($MB_OK, "GUI Event", "Exiting...", 1) Exit Case $Form2 GUISetState(@SW_HIDE, $Form2) GUISwitch($Form1) EndSwitch EndFunc ;==>_CloseForm ; ----------------------------------------------- Spoiler ; ----------------------------------------------- ;~ MV2a: 3 Forms, 2 Menus, 1 Menu Item ; ----------------------------------------------- #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <MsgBoxConstants.au3> ; ----------------------------------------------- Opt("GUIOnEventMode", 1) ; ----------------------------------------------- Global $Form1, $sForm1Item1 Global $Form2, $sForm2Item1 Global $Form3, $sForm3Item1 ; ----------------------------------------------- Forms() ; ----------------------------------------------- Func Forms() $Form1 = GUICreate("Form 1", 150, 25, -1, -1) GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseForm") ; ----------------------------------------------- $Form2 = GUICtrlCreateMenu("Form 2") GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseForm") $sForm2Item1 = GUICtrlCreateMenuItem("Item 1", $Form2) GUICtrlSetOnEvent($sForm2Item1, "_Form2ColRow") ; ----------------------------------------------- $Form3 = GUICtrlCreateMenu("Form 3") GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseForm") $sForm3Item1 = GUICtrlCreateMenuItem("Item 1", $Form3) GUICtrlSetOnEvent($sForm3Item1, "_Form3ColRow") ; ----------------------------------------------- GUISwitch($Form1) GUISetState(@SW_SHOW) While 1 Sleep(10) WEnd EndFunc ;==>Forms ; ----------------------------------------------- ; ----------------------------------------------- Func _Form2ColRow() Switch @GUI_CtrlId Case $sForm2Item1 Form2Item1() GUISetState(@SW_HIDE, $Form2) GUISwitch($Form1) EndSwitch EndFunc ;==>_Form2ColRow ; ----------------------------------------------- Func _Form3ColRow() Switch @GUI_CtrlId Case $sForm3Item1 Form3Item1() GUISetState(@SW_HIDE, $Form3) GUISwitch($Form1) EndSwitch EndFunc ;==>_Form3ColRow ; ----------------------------------------------- ; ----------------------------------------------- Func Form2Item1() GUISwitch($Form2) GUISetState(@SW_SHOW) MsgBox($MB_OK, "", "Form 2, Item 1...", 1) EndFunc ;==>Form2Item1 ; ----------------------------------------------- Func Form3Item1() GUISwitch($Form3) GUISetState(@SW_SHOW) MsgBox($MB_OK, "", "Form 3, Item 1...", 1) EndFunc ;==>Form3Item1 ; ----------------------------------------------- ; ----------------------------------------------- Func _CloseForm() Switch @GUI_WinHandle Case $Form1 MsgBox($MB_OK, "GUI Event", "Exiting...", 1) Exit Case $Form2 GUISetState(@SW_HIDE, $Form2) GUISwitch($Form1) EndSwitch EndFunc ;==>_CloseForm ; ----------------------------------------------- Spoiler ; ----------------------------------------------- ;~ MV3b: 2 Forms, 1 Menu, 1 Submenu, 2 Menu Items ; ----------------------------------------------- #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <MsgBoxConstants.au3> ; ----------------------------------------------- Opt("GUIOnEventMode", 1) ; ----------------------------------------------- Global $Form1, $sForm1Item1 Global $Form2, $sForm2Item1, $sForm2Item2 ; ----------------------------------------------- Forms() ; ----------------------------------------------- Func Forms() $Form1 = GUICreate("Form 1", 150, 25, -1, -1) GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseForm") ; ----------------------------------------------- $Form2 = GUICtrlCreateMenu("Form 2") $Form2a = GUICtrlCreateMenu("Form 2a", $Form2) GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseForm") $sForm2Item1 = GUICtrlCreateMenuItem("Item 1", $Form2a) GUICtrlSetOnEvent($sForm2Item1, "_Form2ColRow") $sForm2Item2 = GUICtrlCreateMenuItem("Item 2", $Form2a) GUICtrlSetOnEvent($sForm2Item2, "_Form2ColRow") ; ----------------------------------------------- GUISwitch($Form1) GUISetState(@SW_SHOW) While 1 Sleep(10) WEnd EndFunc ;==>Forms ; ----------------------------------------------- ; ----------------------------------------------- Func _Form2ColRow() Switch @GUI_CtrlId Case $sForm2Item1 Form2Item1() GUISetState(@SW_HIDE, $Form2) GUISwitch($Form1) Case $sForm2Item2 Form2Item2() GUISetState(@SW_HIDE, $Form2) GUISwitch($Form1) EndSwitch EndFunc ;==>_Form2ColRow ; ----------------------------------------------- ; ----------------------------------------------- Func Form2Item1() GUISwitch($Form2) GUISetState(@SW_SHOW) MsgBox($MB_OK, "", "Form 2, SubMenu Item 1...", 1) EndFunc ;==>Form2Item1 ; ----------------------------------------------- Func Form2Item2() GUISwitch($Form2) GUISetState(@SW_SHOW) MsgBox($MB_OK, "", "Form 2, SubMenu Item 2...", 1) EndFunc ;==>Form2Item2 ; ----------------------------------------------- ; ----------------------------------------------- Func _CloseForm() Switch @GUI_WinHandle Case $Form1 MsgBox($MB_OK, "GUI Event", "Exiting...", 1) Exit Case $Form2 GUISetState(@SW_HIDE, $Form2) GUISwitch($Form1) EndSwitch EndFunc ;==>_CloseForm ; ----------------------------------------------- Spoiler ; ----------------------------------------------- ;~ MV4a: 3 Forms, 2 Menus, 2 Menu Items [One Exit] ; ----------------------------------------------- #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <MsgBoxConstants.au3> ; ----------------------------------------------- Opt("GUIOnEventMode", 1) ; ----------------------------------------------- Global $Form1, $sForm1Item1 Global $Form2, $sForm2Item1 Global $Form3, $sForm3Item1 ; ----------------------------------------------- Forms() ; ----------------------------------------------- Func Forms() $Form1 = GUICreate("Form 1", 150, 25, -1, -1) GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseForm") ; ----------------------------------------------- $Form2 = GUICtrlCreateMenu("Form 2") $sForm2Item1 = GUICtrlCreateMenuItem("Item 1", $Form2) GUICtrlSetOnEvent($sForm2Item1, "_Form2ColRow") ; ----------------------------------------------- $Form3 = GUICtrlCreateMenu("Exit") $sForm3Item1 = GUICtrlCreateMenuItem("Exit", $Form3) GUICtrlSetOnEvent($sForm3Item1, "_CloseForm") ; ----------------------------------------------- GUISwitch($Form1) GUISetState(@SW_SHOW) While 1 Sleep(10) WEnd EndFunc ;==>Forms ; ----------------------------------------------- ; ----------------------------------------------- Func _Form2ColRow() Switch @GUI_CtrlId Case $sForm2Item1 Form2Item1() GUISetState(@SW_HIDE, $Form2) GUISwitch($Form1) EndSwitch EndFunc ;==>_Form2ColRow ; ----------------------------------------------- ; ----------------------------------------------- Func Form2Item1() GUISwitch($Form2) GUISetState(@SW_SHOW) MsgBox($MB_OK, "", "Form 2, Item 1...", 1) EndFunc ;==>Form2Item1 ; ----------------------------------------------- ; ----------------------------------------------- Func _CloseForm() Switch @GUI_WinHandle Case $Form1 MsgBox($MB_OK, "GUI Event", "Exiting from Form1...", 1) Exit EndSwitch EndFunc ;==>_CloseForm ; ----------------------------------------------- Edited October 9 by mr-es335 mr-es335 Sentinel Music Studios
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