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
+
  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 k = 1 To 3
        submenu2 = New Menu(submenu1)
+
        submenu2 = New Menu(submenu1)
        b += 1
+
        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
+
  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
+
  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 k = 1 To 3
        submenu2 = New Menu(submenu1) As "Submenu2"
+
        submenu2 = New Menu(submenu1) As "Submenu2"
        b += 1
+
        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
+
      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
+
  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
+
  Print Last.Text
 
      
 
      
 
  '''End'''
 
  '''End'''

Versione delle 04: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