Ti segnalo la sollevazione dell'errore "Unknown symbol 'Hasfocus' in class Object[]" a questa riga:
While raps.Hasfocus = False
che ho eliminato così:
While Last.Hasfocus = False
Non capisco in merito a cosa, io utilizzo While raps.hasfocus = False per stabilire qual'è l'i della matrice di controlli raps e mi pare giusta.
L'errore viene sollevato, semplicemente perché la Classe Object[ ] non possiede la proprietà ".HasFocus".
....prima uso mausedown per stabilire su quale raps[?] ho premuto il mouse, successivamente gotfocus dovrebbe darmi la regione scelta per es Lombardia.
In realatà gambas tratta i due eventi come contemporanei....
.....rendere uno susseguente all'altro ma a mio avviso è formalnente scorretto
Per ottenere un evento da mouse successivo al .MouseDown, puoi usare l'evento .MouseUp.
Insomma, una cosa a titolo esemplificativo così:
Public Sub raps_MouseUp()
Print Object.Type(Last)
End
...ma non funziona.
E' strano perché l'ho modificato e funziona.
sicuramente l'applicazione degli eventi a gli oggetti non è molto chiara.
Non saprei... ma basta partire da un esempio base come questo: :-\
Public Sub Form_Open()
' Dichiaro le variabili come gli oggetti specifici che andrò a creare:
Dim tx As TextLabel
Dim bt As Button
' Creo una "TextLabel" ed un "Button", assegnandoli entrambi al Gruppo denominato "prova":
With tx = New TextLabel(Me) As "prova"
.X = 10
.Y = 10
.W = 50
.H = 30
.Text = "TL"
End With
With bt = New Button(Me) As "prova"
.X = 70
.Y = 10
.W = 50
.H = 30
.Text = "BT"
End With
End
' Gli oggetti appartenti al Gruppo "prova" hanno la capacità di sollevare questo evento da mouse:
Public Sub prova_MouseDown()
' Distinguo "quale" oggetto, fra quelli appartenenti al Gruppo "prova",
' ha scatenato effettivamente l'evento "MouseDown":
Print Object.Type(Last) & " Giù"
End
' Gli oggetti appartenti al Gruppo "prova" hanno la capacità di sollevare questo evento da mouse:
Public Sub prova_MouseUp()
' Distinguo "quale" oggetto, fra quelli appartenenti al Gruppo "prova",
' ha scatenato effettivamente l'evento "MouseUp":
Print Object.Type(Last) & " Su"
End