Come da immagine sotto. Ho la variabile frm che ricevo come parametro in una funzione, devo accedere a test.form1 (che potrebbe anche avere un nome diverso).
Non so come fare ??? frm.test.form1 non funziona.![]()
![]()
![]()
Grazie a tutti
Come da immagine sotto. Ho la variabile frm che ricevo come parametro in una funzione, devo accedere a test.form1 (che potrebbe anche avere un nome diverso).
Non so come fare ??? frm.test.form1 non funziona.![]()
![]()
![]()
Grazie a tutti
Il primo passo è quello di non andare a caso.Originariamente inviato da pippo472
Come da immagine sotto. Ho la variabile frm che ricevo come parametro in una funzione, devo accedere a test.form1 (che potrebbe anche avere un nome diverso).
Non so come fare ??? frm.test.form1 non funziona.
Il secondo è quello di comprendere bene ciò che stai facendo in base al codice che scrivi, sia nei file sorgente che nelle finestre di debugging.
La variabile frm di cui parli è probabilmente un riferimento ad un oggetto di tipo Test.Form1, quindi è sufficiente utilizzare tale variabile per accedere a tutte le proprietà dell'oggetto; fare riferimento a Test.Form1 significa ispezionare la classe, non l'oggetto su cui stai lavorando.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Ti ringrazio moltissimo.
Mi spiego meglio
richiamo la funzione xxx(Me) Me è il form
sub xxx(frm as object)
come faccio da frm risalire a quello che contiene?
Probabilmente la mia domanda è stupidama richiamo questa funzione da form diversi e devo vedere quello che contengono
![]()
Grazie
Intanto evita il late binding dichiarando la tua sub come
(renderà il tuo codice leggermente più veloce e inoltre digitando frm. nell'editor di codice verranno visualizzate tutte le proprietà e i metodi disponibili). Quindi per vedere il contenuto del form esamina la proprietà Controls del parametro frm; si tratta di una collection che contiene tutti i controlli contenuti nel form.codice:sub xxx(frm as System.Windows.Forms.Form)
Amaro C++, il gusto pieno dell'undefined behavior.
Purtroppo esaminando Controls trovo solamente il Tabdialog mentre nel frm -> test.form1 trovo tutti i controlli.
Mi chiedo: se vs2005 può esplorare tutto il contenuto di frm come mai io no? probabilmente è solo perche non sono capace.
grazie
Tutti gli altri controlli sono "figli" del controllo TabDialog. Guarda anche all'interno della sua proprietà Controls.
Amaro C++, il gusto pieno dell'undefined behavior.