Differenze tra le versioni di "Creare Menu popup da codice"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "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 presen...") |
|||
Riga 5: | Riga 5: | ||
Dim j, k, b As Byte | Dim j, k, b As Byte | ||
− | |||
<FONT color=gray>' ''Se dunque si è cliccato con il tasto destro:''</font> | <FONT color=gray>' ''Se dunque si è cliccato con il tasto destro:''</font> | ||
− | + | If Mouse.Right Then | |
<FONT color=gray>' ''Crea innanzitutto il Menu principale:''</font> | <FONT color=gray>' ''Crea innanzitutto il Menu principale:''</font> | ||
− | + | menu1 = New Menu(Me) | |
<FONT color=gray>' ''Poi crea quattro sotto-Menu:''</font> | <FONT color=gray>' ''Poi crea quattro sotto-Menu:''</font> | ||
− | + | For j = 1 To 4 | |
− | + | submenu1 = 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) | |
<FONT color=gray>' ''Poi crea tre sotto-Menu per ciascun precedente sotto-Menu:''</font> | <FONT color=gray>' ''Poi crea tre sotto-Menu per ciascun precedente sotto-Menu:''</font> | ||
− | + | For k = 1 To 3 | |
− | + | submenu2 = New Menu(submenu1) | |
− | + | Inc b | |
<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) | |
<FONT color=gray>' ''Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu,'' | <FONT color=gray>' ''Assegna all'azione, quando si cliccherà su uno dei secondi sotto-Menu,'' | ||
' ''il testo del secondo sotto-Menu medesimo:''</font> | ' ''il testo del secondo sotto-Menu medesimo:''</font> | ||
− | + | submenu2.Action = submenu2.Text | |
− | + | Next | |
− | + | Next | |
<FONT color=gray>' ''Mostra quindi le finestre di ciascun Menu:''</font> | <FONT color=gray>' ''Mostra quindi le finestre di ciascun Menu:''</font> | ||
− | + | menu1.Popup | |
− | + | Endif | |
'''End''' | '''End''' | ||
Riga 53: | Riga 52: | ||
Dim menu1, submenu1, submenu2 As Menu | Dim menu1, submenu1, submenu2 As Menu | ||
Dim j, k, b As Byte | Dim j, k, b As Byte | ||
− | |||
<FONT color=gray>' ''Se dunque si è cliccato con il tasto destro:''</font> | <FONT color=gray>' ''Se dunque si è cliccato con il tasto destro:''</font> | ||
− | + | If Mouse.Right Then | |
<FONT color=gray>' ''Crea innanzitutto il Menu principale:''</font> | <FONT color=gray>' ''Crea innanzitutto il Menu principale:''</font> | ||
− | + | menu1 = New Menu(Me) | |
<FONT color=gray>' ''Poi crea quattro sotto-Menu:''</font> | <FONT color=gray>' ''Poi crea quattro sotto-Menu:''</font> | ||
− | + | For j = 1 To 4 | |
− | + | submenu1 = 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) | |
<FONT color=gray>' ''Poi crea tre sotto-Menu per ciascun precedente sotto-Menu:''</font> | <FONT color=gray>' ''Poi crea tre sotto-Menu per ciascun precedente sotto-Menu:''</font> | ||
− | + | For k = 1 To 3 | |
− | + | submenu2 = New Menu(submenu1) As "Submenu2" | |
− | + | Inc b | |
<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) | |
− | + | Next | |
− | + | Next | |
<FONT color=gray>' ''Mostra quindi le finestre di ciascun Menu:''</font> | <FONT color=gray>' ''Mostra quindi le finestre di ciascun Menu:''</font> | ||
− | + | menu1.Popup | |
− | + | Endif | |
'''End''' | '''End''' | ||
Riga 88: | Riga 86: | ||
<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> | ||
− | + | Print Last.Text | |
'''End''' | '''End''' |
Versione delle 03:21, 21 ago 2020
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_MouseUp() Dim menu1, submenu1, submenu2 As Menu Dim j, k, b As Byte ' Se dunque si è cliccato con il tasto destro: If Mouse.Right Then ' 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 k = 1 To 3 submenu2 = New Menu(submenu1) Inc b ' 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 Endif 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_MouseUp() Dim menu1, submenu1, submenu2 As Menu Dim j, k, b As Byte ' Se dunque si è cliccato con il tasto destro: If Mouse.Right Then ' 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 k = 1 To 3 submenu2 = New Menu(submenu1) As "Submenu2" Inc b ' Mostra il testo per ciascuno dei tre sotto-Menu: submenu2.Text = "submenu2_" & CStr(b) Next Next ' Mostra quindi le finestre di ciascun Menu: menu1.Popup Endif End Public Sub Submenu2_Click() ' Vediamo semplicemente il testo dell'ultimo sotto-Menu cliccato: Print Last.Text End