Differenze tra le versioni di "Creare Menu popup da codice"
Da Gambas-it.org - Wikipedia.
(10 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Mostreremo | + | Mostreremo due possibili modalità, per creare un menu ''Popup'', cliccando con il tasto destro del mouse ad esempio sul ''Form'': |
− | + | ||
+ | ==Sollevando l'Evento "_Activate()" dei sotto-Menu== | ||
+ | In questa modalità si userà l'Evento "_Menu()" del ''Form'': | ||
+ | Public Sub Form<FONT color=green>_Menu</font>() <FONT color=gray>' ''Questo Evento si scatena, se si è cliccato sul "Form" con il tasto destro del mouse.''</font> | ||
+ | |||
+ | Dim hMenu As Menu | ||
+ | Dim VoceMenu As Menu | ||
+ | Dim NomiVociMenu As String[] = ["Prima voce", "Seconda voce", "Terza voce", "Quarta voce"] | ||
− | + | hMenu = New Menu(Me) | |
− | |||
− | |||
− | |||
− | |||
− | + | For Each nome As String In NomiVociMenu | |
− | For | + | With VoceMenu = New Menu(hMenu) |
− | + | .text = nome | |
− | + | .Action = .text | |
− | + | End With | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Next | Next | ||
+ | |||
+ | <FONT color=gray>' ''Cliccando sul "Form" con il tasto destro del mouse, si aprirà il "PopMenu";''</font> | ||
+ | hMenu<FONT color=red>.Popup</font> | ||
− | + | End | |
− | |||
− | |||
− | + | Public Sub Action<FONT color=red>'''_Activate'''</font>(azione As String) As Boolean | |
− | |||
<FONT color=gray>' ''Vediamo semplicemente il testo del sotto-Menu cliccato:''</font> | <FONT color=gray>' ''Vediamo semplicemente il testo del sotto-Menu cliccato:''</font> | ||
− | + | Print azione | |
− | + | End | |
+ | |||
+ | ====Creando delle sub-voci alle voci del Menu principale==== | ||
+ | Public Sub Form_Menu() | ||
+ | |||
+ | Dim hMenu As Menu | ||
+ | Dim VoceMenu, subVoce As Menu | ||
+ | Dim NomiVociMenu As String[] = ["Prima voce", "Seconda voce", "Terza voce", "Quarta voce"] | ||
+ | Dim SottoVoci As String[] = ["PrimaSub", "SecondaSub", "TerzaSub", "QuartaSub"] | ||
+ | |||
+ | <FONT color=gray>' ''Crea innanzitutto il Menu principale:''</font> | ||
+ | hMenu = New Menu(Me) | ||
+ | |||
+ | <FONT color=gray>' ''Poi crea le voci del Menu principale:''</font> | ||
+ | For Each nome As String In NomiVociMenu | ||
+ | With VoceMenu = New Menu(hMenu) | ||
+ | .text = nome | ||
+ | <FONT color=gray>' ''Poi crea le sub-voci per ciascuna voce del menu principale:''</font> | ||
+ | For Each subnome As String In SottoVoci | ||
+ | With subVoce = New Menu(VoceMenu) | ||
+ | .text = subnome | ||
+ | .Action = .text & " della " & VoceMenu.Text | ||
+ | End With | ||
+ | Next | ||
+ | End With | ||
+ | Next | ||
+ | |||
+ | hMenu.Popup | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Action_Activate(azione As String) As Boolean | ||
+ | |||
+ | Print azione | ||
+ | |||
+ | End | ||
− | + | ==Sollevando l'Evento "_Click()" delle voci del Menu== | |
− | + | Private hMenu As Menu | |
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | Dim VociMenu As Menu | ||
+ | Dim NomiVociMenu As String[] = ["Prima voce", "Seconda voce", "Terza voce", "Quarta voce"] | ||
+ | |||
+ | With Me | ||
+ | .H = 512 | ||
+ | .W = 512 | ||
+ | <FONT color=gray>' ''Cliccando sul "Form" con il tasto destro del mouse, si aprirà il "PopMenu";''</font> | ||
+ | <FONT color=red>.PopupMenu</font> = "MenuPrincipale" | ||
+ | End With | ||
+ | |||
+ | hMenu = New Menu(Me) As "MenuPrincipale" | ||
− | + | For Each nome As String In NomiVociMenu | |
− | + | With VociMenu = New Menu(hMenu) As "VociMenu" | |
− | + | .text = nome | |
− | + | End With | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Next | Next | ||
− | |||
− | |||
− | |||
− | + | End | |
− | + | Public Sub VociMenu<FONT color=red><B>_Click()</b></font> | |
− | |||
Print Last.Text | Print Last.Text | ||
− | + | ||
− | + | End |
Versione attuale delle 05:34, 28 lug 2024
Mostreremo due possibili modalità, per creare un menu Popup, cliccando con il tasto destro del mouse ad esempio sul Form:
Sollevando l'Evento "_Activate()" dei sotto-Menu
In questa modalità si userà l'Evento "_Menu()" del Form:
Public Sub Form_Menu() ' Questo Evento si scatena, se si è cliccato sul "Form" con il tasto destro del mouse. Dim hMenu As Menu Dim VoceMenu As Menu Dim NomiVociMenu As String[] = ["Prima voce", "Seconda voce", "Terza voce", "Quarta voce"] hMenu = New Menu(Me) For Each nome As String In NomiVociMenu With VoceMenu = New Menu(hMenu) .text = nome .Action = .text End With Next ' Cliccando sul "Form" con il tasto destro del mouse, si aprirà il "PopMenu"; hMenu.Popup End Public Sub Action_Activate(azione As String) As Boolean ' Vediamo semplicemente il testo del sotto-Menu cliccato: Print azione End
Creando delle sub-voci alle voci del Menu principale
Public Sub Form_Menu() Dim hMenu As Menu Dim VoceMenu, subVoce As Menu Dim NomiVociMenu As String[] = ["Prima voce", "Seconda voce", "Terza voce", "Quarta voce"] Dim SottoVoci As String[] = ["PrimaSub", "SecondaSub", "TerzaSub", "QuartaSub"] ' Crea innanzitutto il Menu principale: hMenu = New Menu(Me) ' Poi crea le voci del Menu principale: For Each nome As String In NomiVociMenu With VoceMenu = New Menu(hMenu) .text = nome ' Poi crea le sub-voci per ciascuna voce del menu principale: For Each subnome As String In SottoVoci With subVoce = New Menu(VoceMenu) .text = subnome .Action = .text & " della " & VoceMenu.Text End With Next End With Next hMenu.Popup End Public Sub Action_Activate(azione As String) As Boolean Print azione End
Sollevando l'Evento "_Click()" delle voci del Menu
Private hMenu As Menu Public Sub Form_Open() Dim VociMenu As Menu Dim NomiVociMenu As String[] = ["Prima voce", "Seconda voce", "Terza voce", "Quarta voce"] With Me .H = 512 .W = 512 ' Cliccando sul "Form" con il tasto destro del mouse, si aprirà il "PopMenu"; .PopupMenu = "MenuPrincipale" End With hMenu = New Menu(Me) As "MenuPrincipale" For Each nome As String In NomiVociMenu With VociMenu = New Menu(hMenu) As "VociMenu" .text = nome End With Next End Public Sub VociMenu_Click() Print Last.Text End