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

Da Gambas-it.org - Wikipedia.
Riga 40: Riga 40:
  
 
==Sollevando l'Evento "_Click()" dei sotto-Menu==
 
==Sollevando l'Evento "_Click()" dei sotto-Menu==
Anziché sollevare l'Evento "Action_Activate()", si potrà sollevare l'Evento "'_Click()" di un sotto-Menu.
+
Anziché sollevare l'Evento "Action_Activate()", si potrà sollevare l'Evento "_Click()" di un sotto-Menu.
 
del secondo sub-Menu cliccato.
 
del secondo sub-Menu cliccato.
 
<BR>Mostriamo un codice, simile al precedente, nel quale viene sollevare l'Evento "'_Click()" el secondo sub-Menu cliccato.
 
<BR>Mostriamo un codice, simile al precedente, nel quale viene sollevare l'Evento "'_Click()" el secondo sub-Menu cliccato.
 
  Public Sub Form_Menu()  <FONT color=gray>' ''Questo Evento si scatena, se si è cliccato con il tasto destro del mouse.''</font>
 
  Public Sub Form_Menu()  <FONT color=gray>' ''Questo Evento si scatena, se si è cliccato con il tasto destro del mouse.''</font>
 
   
 
   
   Dim menu1, submenu1, submenu2 As Menu
+
   Dim menu1, submenu1livello, submenu2livello As Menu
  Dim j, b As Byte
+
 
 
 
  <FONT color=gray>' ''Crea innanzitutto il Menu principale:''</font>
 
  <FONT color=gray>' ''Crea innanzitutto il Menu principale:''</font>
 
   menu1 = New Menu(Me)
 
   menu1 = New Menu(Me)
 
+
  <FONT color=gray>' ''Poi crea quattro sotto-Menu:''</font>
+
  <FONT color=gray>' ''Poi crea quattro sotto-Menu (1° livello dei sotto-menu):''</font>
   For j = 1 To 4
+
   For j As Byte = 1 To 4
     submenu1 = New Menu(menu1)
+
     submenu1livello = New Menu(menu1)
 
  <FONT color=gray>' ''Mostra il testo per ciascuno dei quattro sotto-Menu:''</font>
 
  <FONT color=gray>' ''Mostra il testo per ciascuno dei quattro sotto-Menu:''</font>
     submenu1.Text = "submenu1_" & CStr(j)
+
     submenu1livello.Text = "1° livello sotto-Menu" & "_" & CStr(j)
 
      
 
      
  <FONT color=gray>' ''Poi crea tre sotto-Menu per ciascun precedente sotto-Menu:''</font>
+
  <FONT color=gray>' ''Poi crea tre sotto-Menu (2° livello dei sotto-menu) per ciascun precedente sotto-Menu del 1° livello:''</font>
     For b = 1 To 3
+
     For b As Byte = 1 To 3
<FONT color=gray>' ''Con questa seconda modalità è necessario assegnare ogni sotto-Menu ad un unico Gruppo di Eventi:''</font>
+
       submenu2livello = New Menu(submenu1livello) As "Submenu2"
       submenu2 = New Menu(submenu1) As "Submenu2"
 
 
  <FONT color=gray>' ''Mostra il testo per ciascuno dei tre sotto-Menu:''</font>
 
  <FONT color=gray>' ''Mostra il testo per ciascuno dei tre sotto-Menu:''</font>
       submenu2.Text = "submenu2_" & CStr(b)
+
       submenu2livello.Text = "2° livello sotto-Menu" & CStr(b)
 
  <FONT color=gray>' ''Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu, il testo del secondo sotto-Menu medesimo:''</font>
 
  <FONT color=gray>' ''Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu, il testo del secondo sotto-Menu medesimo:''</font>
       submenu2.Action = submenu2.Text
+
       submenu2livello.Action = submenu2livello.Text
 
     Next
 
     Next
 
   Next
 
   Next
Riga 74: Riga 72:
 
   
 
   
 
   
 
   
  Public Sub Submenu2<FONT color=red>'''_Click()'''</font>(azione As String)
+
  Public Sub Submenu2<FONT color=red>'''_Click()'''</font>
 
    
 
    
 
  <FONT color=gray>' ''Vediamo semplicemente il testo dell'ultimo sotto-Menu cliccato:''</font>
 
  <FONT color=gray>' ''Vediamo semplicemente il testo dell'ultimo sotto-Menu cliccato:''</font>

Versione delle 06:34, 8 lug 2024

Mostreremo due possibili modalità, per creare, cliccando con il tasto destro del mouse ad esempio sul Form, un menu Popup con quattro sotto-menu, ciascuno dei quali presenta ulteriori tre sotto-menu:

Sollevando l'Evento "_Activate()" dei sotto-Menu

Public Sub Form_Menu()   ' Questo Evento si scatena, se si è cliccato con il tasto destro del mouse.

 Dim menu1, submenu1livello, submenu2livello As Menu
 
' Crea innanzitutto il Menu principale:
 menu1 = New Menu(Me)
 
' Poi crea quattro sotto-Menu (1° livello dei sotto-menu):
 For j As Byte = 1 To 4
   submenu1livello = New Menu(menu1)
' Mostra il testo per ciascuno dei quattro sotto-Menu:
   submenu1livello.Text = "1° livello sotto-Menu" & "_" & CStr(j)
   
' Poi crea tre sotto-Menu (2° livello dei sotto-menu) per ciascun precedente sotto-Menu del 1° livello:
   For b As Byte = 1 To 3
     submenu2livello = New Menu(submenu1livello)
' Mostra il testo per ciascuno dei tre sotto-Menu:
     submenu2livello.Text = "2° livello sotto-Menu" & CStr(b)
' Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu, il testo del secondo sotto-Menu medesimo:
     submenu2livello.Action = submenu2livello.Text
   Next
 Next
 
' Mostra quindi le finestre di ciascun Menu:
 menu1.Popup

End


Public Sub Action_Activate(azione As String) As Boolean

' Vediamo semplicemente il testo del sotto-Menu cliccato:
 Print azione

End


Sollevando l'Evento "_Click()" dei sotto-Menu

Anziché sollevare l'Evento "Action_Activate()", si potrà sollevare l'Evento "_Click()" di un sotto-Menu. del secondo sub-Menu cliccato.
Mostriamo un codice, simile al precedente, nel quale viene sollevare l'Evento "'_Click()" el secondo sub-Menu cliccato.

Public Sub Form_Menu()   ' Questo Evento si scatena, se si è cliccato con il tasto destro del mouse.

 Dim menu1, submenu1livello, submenu2livello As Menu

' Crea innanzitutto il Menu principale:
 menu1 = New Menu(Me)

' Poi crea quattro sotto-Menu (1° livello dei sotto-menu):
 For j As Byte = 1 To 4
   submenu1livello = New Menu(menu1)
' Mostra il testo per ciascuno dei quattro sotto-Menu:
   submenu1livello.Text = "1° livello sotto-Menu" & "_" & CStr(j)
   
' Poi crea tre sotto-Menu (2° livello dei sotto-menu) per ciascun precedente sotto-Menu del 1° livello:
   For b As Byte = 1 To 3
     submenu2livello = New Menu(submenu1livello) As "Submenu2"
' Mostra il testo per ciascuno dei tre sotto-Menu:
     submenu2livello.Text = "2° livello sotto-Menu" & CStr(b)
' Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu, il testo del secondo sotto-Menu medesimo:
     submenu2livello.Action = submenu2livello.Text
   Next
 Next
 
' Mostra quindi le finestre di ciascun Menu:
 menu1.Popup

End


Public Sub Submenu2_Click()
 
' Vediamo semplicemente il testo dell'ultimo sotto-Menu cliccato:
 Print Last.Text
   
End