Creare Menu popup da codice: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
(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...")
 
Nessun oggetto della modifica
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