|
|
(8 versioni intermedie di uno stesso utente non sono mostrate) |
Riga 1: |
Riga 1: |
− | Come è noto, per creare un classico Menu si utilizza l'apposito Editor, che viene aperto premendo i due tasti ctrl + e; ma qui prendiamo in considerazione la possibilità di realizzare un Menu mediante il codice. |[[#Note|1]]|
| + | #REDIRECT [[Creare_Menu_da_codice_e_non_con_l'Editor-Menu]] |
− | | |
− | Dovremo, inoltre, collegare un evento alle sotto-voci del Menu principale, che venga solleato quando clicchiamo su una di quelle.
| |
− | Prendiamo in considerazione tre modalità.
| |
− | | |
− | | |
− | ==Creando una routine-evento per ciascuna sotto-voce del Menu==
| |
− | <FONT color=#006400>' ''Dichiariamo il Menu principale:''</font>
| |
− | '''Private''' mn As Menu
| |
− |
| |
− |
| |
− | '''Public''' Sub Form_Open()
| |
− |
| |
− | <FONT color=#006400>' ''Dichiariamo anche le sotto-voci del Menu:''</font>
| |
− | Dim mn1 As Menu
| |
− | Dim mn2 As Menu
| |
− | Dim mn3 As Menu
| |
− | Dim mn4 As Menu
| |
− |
| |
− | <FONT color=#006400>' ''Impostiamo il Menu principale, impostando come "contenitore" il Form:''</font>
| |
− | mn = New Menu(Me)
| |
− |
| |
− | <FONT color=#006400>' ''Gli diamo il testo che sarà mostrato:''</font>
| |
− | mn.Caption = "File"
| |
− |
| |
− | <FONT color=#006400>' ''Attribuiamo al Menu principale le sue sotto-voci,
| |
− | ' alle quali diamo il testo che sarà mostrato,
| |
− | ' e come "contenitore" il Menu principale:''</font>
| |
− | mn1 = New Menu(mn, False)
| |
− | With mn1
| |
− | <FONT color=#006400>' ''Facciamo mostrare la denominazione della sotto-voce mediante ".Caption":''</font>
| |
− | .Caption = "Nuovo"
| |
− | .Name = "Nuovo"
| |
− | End With
| |
− |
| |
− | mn2 = New Menu(mn, False)
| |
− | With mn2
| |
− | .Caption = "Apri"
| |
− | .Name = "Apri"
| |
− | End With
| |
− |
| |
− | mn3 = New Menu(mn, False)
| |
− | With mn3
| |
− | .Caption = "Salva con nome..."
| |
− | .Name = "Salva con nome..."
| |
− | End With
| |
− |
| |
− | mn4 = New Menu(mn, False)
| |
− | With mn4
| |
− | .Caption = "Esci"
| |
− | .Name = "Esci"
| |
− | End With
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub mn1_Click()
| |
− |
| |
− | <FONT color=#006400>' ''qui fa qualcosa...''</font>
| |
− |
| |
− | '''End'''
| |
− |
| |
− | '''Public''' Sub mn2_Click()
| |
− |
| |
− | etc etc
| |
− | ...
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | ==Assegnando un medesimo Gruppo alle sotto-voci del Menu==
| |
− | Mostriamo due modalità possibili per assegnare un medesimo Gruppo alle sotto-voci del Menu, e per associare ciascuna sotto-voce, in qualità di oggetto, ad un evento:
| |
− | '''Private''' mn As Menu
| |
− | '''Private''' subMn as Menu
| |
− |
| |
− |
| |
− | '''Public''' Sub Form_Open()
| |
− |
| |
− | Dim mn As Menu
| |
− | Dim i As Integer
| |
− | Dim testo As String
| |
− |
| |
− | With mn = New Menu(FMain)
| |
− | .Caption = "File"
| |
− | End With
| |
− |
| |
− | <FONT color=#006400>' ''Per far apparire nel Menu principale le sue sotto-voci con "specifiche" denominazioni:''</font>
| |
− | For i = 0 To 3
| |
− | Select Case i
| |
− | Case 0
| |
− | testo = "Nuovo"
| |
− | Case 1
| |
− | testo = "Apri"
| |
− | Case 2
| |
− | testo = "Salva con nome..."
| |
− | Case 3
| |
− | testo = "esci"
| |
− | End Select
| |
− |
| |
− | <FONT color=#006400>' ''Crea una nuova sotto-voce del Menu principale,
| |
− | ' ''e viene assegnata ad un unico Gruppo:''</font>
| |
− | With subMn = New Menu(mn) <FONT color=#B22222>As "SubMn"</font>
| |
− | .Caption = testo
| |
− | .Name = testo
| |
− | End With
| |
− |
| |
− | Next
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub subMn_Click()
| |
− |
| |
− | <FONT color=#006400>' ''Riscontriamo quale sotto-voce abbiamo scelto:''</font>
| |
− | Message.Info("Hai premuto il sotto-menu: " & Last.Name)
| |
− |
| |
− | '''End'''
| |
− | | |
− | oppure:
| |
− | '''Private''' mn As Menu
| |
− |
| |
− |
| |
− | '''Public''' Sub Form_Open()
| |
− |
| |
− | Dim mn1 As Menu
| |
− | Dim mn2 As Menu
| |
− | Dim mn3 As Menu
| |
− | Dim mn4 As Menu
| |
− | Dim testo As String
| |
− |
| |
− | mn = New Menu(Fmain)
| |
− | mn.Caption = "File"
| |
− |
| |
− | mn1 = New Menu(mn, False)
| |
− | With mn1
| |
− | <FONT color=#006400>' ''Facciamo mostrare la denominazione della sotto-voce mediante ".Caption":''</font>
| |
− | .Caption = "Nuovo"
| |
− | .Name = "Nuovo"
| |
− | End With
| |
− |
| |
− | mn2 = New Menu(mn, False)
| |
− | With mn2
| |
− | .Caption = "Apri"
| |
− | .Name = "Apri"
| |
− | End With
| |
− |
| |
− | mn3 = New Menu(mn, False)
| |
− | With mn3
| |
− | .Caption = "Salva con nome..."
| |
− | .Name = "Salva con nome..."
| |
− | End With
| |
− |
| |
− | mn4 = New Menu(mn, False)
| |
− | With mn4
| |
− | .Caption = "Esci"
| |
− | .Name = "Esci"
| |
− | End With
| |
− |
| |
− | Object.Attach(mn1, Me, "ev")
| |
− | Object.Attach(mn2, Me, "ev")
| |
− | Object.Attach(mn3, Me, "ev")
| |
− | Object.Attach(mn4, Me, "ev")
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub ev_Click()
| |
− |
| |
− | Dim obj As Object = Last
| |
− |
| |
− | <FONT color=#006400>' ''Riscontriamo quale sotto-voce abbiamo scelto:''</font>
| |
− | Message.Info("Hai premuto il menu: " & Last.Name)
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | ==Creare Menu ad un oggetto ''Window''==
| |
− | E' possibile creare Menu anche per l'oggetto ''Window''.
| |
− | | |
− | Come esempio riprendiamo in parte, ed opportunamente modificato, uno dei codici sopra descritti:
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | Dim w As Window
| |
− | Dim mn, subMn As Menu
| |
− | Dim i As Integer
| |
− | Dim testo As String
| |
− |
| |
− |
| |
− | <FONT color=#006400>' ''Crea un'oggetto "Window":''</font>
| |
− | With w = New Window
| |
− | .W = 200
| |
− | .H = 200
| |
− | .Center
| |
− | .Show
| |
− | End With
| |
− |
| |
− | <FONT color=#006400>' ''Crea un Menu attribuendolo all'ggetto "Window":''</font>
| |
− | With mn = New Menu(w)
| |
− | .Name = "prova_Menu"
| |
− | .Text = "menu"
| |
− | End With
| |
− |
| |
− | For i = 0 To 3
| |
− | Select Case i
| |
− | Case 0
| |
− | testo = "Nuovo"
| |
− | Case 1
| |
− | testo = "Apri"
| |
− | Case 2
| |
− | testo = "Salva con nome..."
| |
− | Case 3
| |
− | testo = "esci"
| |
− | End Select
| |
− |
| |
− | <FONT color=#006400>' ''Crea una nuova sotto-voce del Menu principale,''
| |
− | ' ''e l'assegna al medesimo Gruppo delle altre sotto-voci:''</font>
| |
− | With subMn = New Menu(mn) As "SubMn"
| |
− | .Caption = testo
| |
− | .Name = testo
| |
− | End With
| |
− |
| |
− | Next
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub subMn_Click()
| |
− |
| |
− | <FONT color=#006400>' ''Riscontriamo quale sotto-voce abbiamo scelto:''</font>
| |
− | Message.Info("Hai premuto il sotto-menu: " & Last.Name)
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | | |
− | =Note=
| |
− | [1] Dobbiamo ringraziare gli utenti ''fsurfing'' e ''milio'' del forum gambas-it.org per i suggerimenti offerti al riguardo.
| |