Jump to content

Recommended Posts

Posted (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 by mr-es335

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
×
×
  • Create New...