Quindi se ho bisogno di un metodo che si comporti in base al valore bQualcosa devo appoggiarlo ad una funzione? Aaah ecco l'inghippo
Hai ragione tu: hai dormito malissimo stanotte ! Svegliaaaaa ! :hard:
Analizziamo il tuo codice principale:
Public hF1 As Form1
Public Sub Form_Open()
hF1 = New Form1
leggiqualcosa(hF1)
End
Private Sub leggiqualcosa(hFinestra As Form)
Print hFinestra.bQualcosa
End
La funzione leggiqualcosa() invoca la omologa routine e le passa la variabile hF1, La quale è di tipo Form1 !
La procedura leggiqualcosa(hFinestra As Form) riceve, sì, una variabile, ma è del tipo di un generico...........
Quindi non c'è altra via di questa? come ho sempre fatto :P
' Gambas class file
Public hF1 As Form1
Public Sub Form_Open()
hF1 = New Form1
hF1.Show
leggiqualcosa(hF1, hF1.bQualcosa)
End
Private Sub leggiqualcosa(hFinestra As Form, b As Boolean)
Print hFinestra.Name, b
End
:violent:
Rispetto per gli anziani
:ciao:
...a me pare, invece, che possa esserci quest'altra che avevi appena accennato:
Public hF1 As Form1
Public Sub Form_Open()
hF1 = New Form1
leggiqualcosa(hF1)
End
Private Sub leggiqualcosa(hFinestra As Form1)
Print hFinestra.bQualcosa
End
La sottoprocedura leggiqualcosa() riceve come proprio argomento una varibile di tipo Form1.... nulla di strano, dato che ad essa viene passata una variabile (la hF1) di tipo Form1.
Infatti, solo così - rispetto al tuo primo codice - è richiamabile la proprietà .bQualcosa, facente parte dell'oggetto Form1 .
Per essere ulteriormente chiari, tu nel tuo codice iniziale hai dichiarato come argomento della sub-routine la variabile hFinestra As Form (NON Form1 !)