Creare Menu popup da codice
Da Gambas-it.org - Wikipedia.
Versione del 15 apr 2021 alle 04:56 di Vuott (Discussione | contributi)
Mostreremo un possibile codice 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:
Public Sub Form_Menu() ' Questo Evento si scatena, se si è cliccato con il tasto destro del mouse. Dim menu1, submenu1, submenu2 As Menu Dim j, b As Byte ' Crea innanzitutto il Menu principale: menu1 = New Menu(Me) ' Poi crea quattro sotto-Menu: For j = 1 To 4 submenu1 = New Menu(menu1) ' Mostra il testo per ciascuno dei quattro sotto-Menu: submenu1.Text = "submenu1_" & CStr(j) ' Poi crea tre sotto-Menu per ciascun precedente sotto-Menu: For b = 1 To 3 submenu2 = New Menu(submenu1) ' Mostra il testo per ciascuno dei tre sotto-Menu: submenu2.Text = "submenu2_" & CStr(b) ' Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu, il testo del secondo sotto-Menu medesimo: submenu2.Action = submenu2.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
Anziché sollevare l'evento Action_Activate(), si potrà sollevare l'evento " _Click() " del secondo sub-Menu cliccato. In tal caso il precedente codice viene così modificato:
Public Sub Form_Menu() ' Questo Evento si scatena, se si è cliccato con il tasto destro del mouse. Dim menu1, submenu1, submenu2 As Menu Dim j, b As Byte ' Crea innanzitutto il Menu principale: menu1 = New Menu(Me) ' Poi crea quattro sotto-Menu: For j = 1 To 4 submenu1 = New Menu(menu1) ' Mostra il testo per ciascuno dei quattro sotto-Menu: submenu1.Text = "submenu1_" & CStr(j) ' Poi crea tre sotto-Menu per ciascun precedente sotto-Menu: For b = 1 To 3 ' Con questa seconda modalità è necessario assegnare ogni sotto-Menu ad un unico Gruppo di Eventi: submenu2 = New Menu(submenu1) As "Submenu2" ' Mostra il testo per ciascuno dei tre sotto-Menu: submenu2.Text = "submenu2_" & CStr(b) ' Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu, il testo del secondo sotto-Menu medesimo: submenu2.Action = submenu2.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