Riprendo questa vecchia discussione, in quanto non avendo a portata di mano il mio pc con i miei appunti a riguardo non riesco ad implementare lo stesso esempio che md9327 allora mi indicò in questo post.
Come suggerito per le proprietà PUBLIC di un oggetto, puoi tranquillamente scriverci sopra dalla form madre, ovvero puoi crearti l'oggetto form figlio e poi popolare i controlli di questa form con i dati che vuoi, direttamente dalla form madre, quindi apri la form figlia.
Un'altra alternativa, che uso di norma, è passare un oggetto (tipo Collection o Object[] o Variant[], insomma un array) con i dati che popoli preventivamente dalla form madre; in questo caso, ad inizio codice della form figlia, devi aggiungere il metodo:
PUBLIC SUB _new(var as Object[])
END
la variabile "var" contiene tutti i dati necessari al popolamento della form figlia, che ti crei prima della sua creazione dalla form madre e li passi in questo modo:
SUB Apri_Form_Child()
DIM f as FormChild 'la tua form figlia
DIM data as NEW Collection
data.Add(var_dato1, 'dato1') 'valore, id
data.Add(var_dato2, 'dato2') 'valore, id
f = NEW FormChild(data)
f.ShowModal()
END
Come vedi, "data" è un oggetto Collection, in cui inserisci i valori che ti servono per popolare la FormChild; il valore è identificabile dal relativo id. Dopodiche crei la FormChild e gli passi "data"; all'interno di FormChild ti prendi data e ci fai quello che ti pare, inoltre puoi anche utilizzare "data" per ritornare alla form madre altri dati... insomma come ti pare...
E' chiaro ?
Bye
Ho creato un piccolo esempio che allego ma mi dà questo errore:
Type mismatch: wanted Obiject[], got Collection insteadnon ricordo se allora avevo avuto lo stesso problema e in che modo avessi risolto, cosa sto sbagliando?
mi serve il vostro aiuto