Buona serata a tutti
E' da poco che sto "giochicchiando" con Gambas, ho provato a modificare un codice dei Menù trovato sulla Guida della Comunità, ma ovviamente ho commesso degli errori dovuti alla mia ignoranza in materia.
Volevo porvi un quesito, anzi due...
primo: dove posso trovare una documentazione completa ( e magari esaustiva) di tutte le classi, funzioni e moduli vari, possibilmente visionabile "off line" ?
secondo: Vi posto il codice, la prima sub funziona ( Public Sub submn_Click() ) ma la seconda no.
Cosa manca?' Dichiarazione d'intenti ...
Public mn_1 As Menu
Public submn As Menu
Public sub_submn As Menu
Public Sub _new()
End
Public Sub Form_Open()
Dim i, j As Integer
Dim testo1, testo2 As String
' creazione dei vari menù e sub menù ...
mn_1 = New Menu(Me, False)
mn_1.Caption = "Operazioni"
' ciclo per la creazione ...
For i = 0 To 3
Select Case i
Case 0
testo1 = "Documento"
Case 1
testo1 = "Salva"
Case 2
testo1 = "Stampa"
Case 3
testo1 = "Esci"
End Select
With submn = New Menu(mn_1, False)
.Caption = testo1
.Name = testo1
End With
Object.Attach(submn, Me, "SubMn")
If i = 0 Then
For j = 0 To 1
Select Case j
Case 0
testo2 = "Crea"
Case 1
testo2 = "Richiama"
End Select
With sub_submn = New Menu(submn, False)
.Caption = testo2
.Name = testo2
'.Action = sub_submn.Name
End With
Object.Attach(sub_submn, submn, "SubSubMn")
Next
Endif
If i = 2 Then
For j = 0 To 1
Select Case j
Case 0
testo2 = "Crea file Pdf"
Case 1
testo2 = "Direttamente"
End Select
With sub_submn = New Menu(submn, False)
.Caption = testo2
.Name = testo2
End With
Object.Attach(sub_submn, submn, "SubSubMn")
Next
Endif
Next
End
Public Sub submn_Click()
' Riscontriamo quale sotto-voce abbiamo scelto:
Message.Info("Hai premuto il sotto-menu: " & Last.Name)
If Last.Name = "Esci" Then
Me.Close
Endif
End
Public Sub sub_submn_Click()
' Riscontriamo quale sotto-voce abbiamo scelto:
Message.Info("Hai premuto il sotto-sotto-menu: ")
End
:-\ Vi ringazio ;)
"siamo tutti ignoranti ma fortunatamente non della stessa cosa"
Ti allego il codice corretto (almeno spero) secondo i suggerimenti di Vuott e oltre.
Comunque la vera forza di Gambas è quella di permettere al programmatore di disegnare velocemente un'interfaccia grafica stupenda direttamente dalla IDE senza dover ricorrere al codice.
Questo esercizio può essere utile per capire certi meccanismi ma, se non hai particolari esigenze di dinamicità es. cambio del nome dei submenu, io ti consiglio di sfruttare le ottime caratteristiche proprie di Gambas.
' Dichiarazione delle variabili globali (queste variabili interessando solo questa classe devono essere dichiarate private)
' Nota: È buona norma evitare sempre le variabili pubbliche, se servissero ci si può rivolgere alle proprietà.
Private mn_1 As Menu
Private submn As Menu
Private sub_submn As Menu
Public Sub Form_Open()
Dim i, j As Integer
Dim testo1, testo2 As String
' creazione dei vari menù e sub menù ...
mn_1 = New Menu(Me, False)
mn_1.Caption = "Operazioni"
' ciclo per la creazione ...
For i = 0 To 3
Select Case i
Case 0
testo1 = "Documento"
Case 1
testo1 = "Salva"
Case 2
testo1 = "Stampa"
Case 3
testo1 = "Esci"
End Select
With submn = New Menu(mn_1, False)
.Caption = testo1
.Name = testo1
End With
Object.Attach(submn, Me, "submn")
If i = 0 Then
For j = 0 To 1
Select Case j
Case 0
testo2 = "Crea"
Case 1
testo2 = "Richiama"
End Select
With sub_submn = New Menu(submn, False)
.Caption = testo2
.Name = testo2
'.Action = sub_submn.Name
End With
Object.Attach(sub_submn, Me, "sub_submn")
Next
Endif
If i = 2 Then
For j = 0 To 1
Select Case j
Case 0
testo2 = "Crea file Pdf"
Case 1
testo2 = "Direttamente"
End Select
With sub_submn = New Menu(submn, False)
.Caption = testo2
.Name = testo2
End With
Object.Attach(sub_submn, Me, "sub_submn")
Next
Endif
Next
End
Public Sub submn_Click()
' Riscontriamo quale sotto-voce abbiamo scelto:
Message.Info("Hai premuto il sotto-menu: " & Last.Name)
If Last.Name = "Esci" Then
Me.Close
Endif
End
Public Sub sub_submn_Click()
' Riscontriamo quale sotto-voce abbiamo scelto:
Message.Info("Hai premuto il sotto-sotto-menu: " & Last.Name)
End
:ciao: :ciao: