Differenze tra le versioni di "Creare Menu popup da codice"

Da Gambas-it.org - Wikipedia.
 
Riga 40: Riga 40:
 
   Dim SottoVoci As String[] = ["PrimaSub", "SecondaSub", "TerzaSub", "QuartaSub"]
 
   Dim SottoVoci As String[] = ["PrimaSub", "SecondaSub", "TerzaSub", "QuartaSub"]
 
   
 
   
 +
<FONT color=gray>' ''Crea innanzitutto il Menu principale:''</font>
 
   hMenu = New Menu(Me)
 
   hMenu = New Menu(Me)
 
   
 
   
 +
<FONT color=gray>' ''Poi crea le voci del Menu principale:''</font>
 
   For Each nome As String In NomiVociMenu
 
   For Each nome As String In NomiVociMenu
 
     With VoceMenu = New Menu(hMenu)  
 
     With VoceMenu = New Menu(hMenu)  
 
       .text = nome
 
       .text = nome
 +
<FONT color=gray>' ''Poi crea le sub-voci per ciascuna voce del menu principale:''</font>
 
       For Each subnome As String In SottoVoci
 
       For Each subnome As String In SottoVoci
         With subVoce = New Menu(VoceMenu) 'As "VociMenu"
+
         With subVoce = New Menu(VoceMenu)
 
         .text = subnome
 
         .text = subnome
 
         .Action = .text & " della " & VoceMenu.Text
 
         .Action = .text & " della " & VoceMenu.Text

Versione attuale delle 06: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