Creare Menu popup da codice: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
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:
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()
  '''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, submenu1, submenu2 As Menu
   Dim j, k, b As Byte
   Dim j, b As Byte
    
<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)
  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
  For j = 1 To 4
      submenu1 = New Menu(menu1)
    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)
    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
    For b = 1 To 3
        submenu2 = New Menu(submenu1)
      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)
      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
        submenu2.Action = submenu2.Text
      Next
     Next
     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
  menu1.Popup
  Endif
   
   
  '''End'''
  '''End'''
Riga 48: Riga 40:


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:
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()
  '''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, submenu1, submenu2 As Menu
   Dim j, k, b As Byte
   Dim j, b As Byte
    
    
<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)
  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
  For j = 1 To 4
      submenu1 = New Menu(menu1)
    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)
    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
    For b = 1 To 3
        submenu2 = New Menu(submenu1) As "Submenu2"
      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)
      submenu2.Text = "submenu2_" & CStr(b)
       Next
<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
     Next
     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
  menu1.Popup
  Endif
   
   
  '''End'''
  '''End'''

Versione delle 05:28, 15 apr 2021

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
     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