Newsgroup: it.comp.lang.visual-basic
Titolo: Parent Window

Ok, mi serve sapere chi è mio "padre" ....
Ho una form con un frame ... ho una seconda form con
un altro frame.
Dentro a form1 faccio setparent form2.frame1 form1.frame1
Risultato desiderato ho tutti i controlli di form2 dentro
il mio form1 ... proprio come se fossero dentro form1.
Bene ora dentro a form2 ... faccio lo stesso ... ovvero
mi carico un form3 con un frame1 a sua volta.
Sempre bellissimo il risultato finale.
Il brutto è che quando faccio l'undoad di form2 ... lui non
mi scarica il form3 ... a meno che io nell'unload non gli
dica unload form3 ...
Ora direte voi ... se sai la risposta perchè posti?
Perchè in realtà il mio form3 può essere form4, form5
o form17 ... non lo sò a priori ... perchè in base ad una
serie di scelte che ha fatto l'utente gli faccio comparire la
form corretta.
Mi aspettavo con le api enumchildwindows ... enumwindow
o addirittura con la getanchestor di riuscire a sapere
che dentro a form2 ho caricato form3 .... dinamicamente
insomma ... non sapendolo io come programmatore e
scolpendolo a codice.
Quello che al massimo sono riuscito a sapere è l'handle di form1
manco di form2 ... questo perchè la setparent "inganna"
windows facendogli credere che form2 o form3 non sia mai
stata caricata quando invece lo è.
Avete altre api che posso guardare, stalci di codice ... ideee?
Grazie.
Ciao Andrea


[snip]
E tu carica Form3/4/5/6 cosě:
Dim MioParent As Form
Select case ...
Case 1
    Load Form1
    Set MioParent = Form1
Case 2
    Load Form2
    Set MioParent = Form2
...
Cosě sai che alla fine devi scaricarti sempre e solo MioParent (e settarlo a
nothing!)
Ciao

Ma se faccio Load formX ... ottengo anche la finestra
del form ... cosa che non voglio ... io voglio solo i suoi
controlli dentro .. ecco perchè ho usato l'api setparent.
Proposta cassata :!!!
Ciao Andrea

 controlli dentro .. ecco perchè ho usato l'api setparent.
? Non capisco... non è affatto vero!
Inoltre non puoi comunque fare la SetParent se la form non è caricata!
Rivaluta la proposta!
Ciao

 controlli dentro .. ecco perchè ho usato l'api setparent.
Quello che voleva dire Zanna e' che sicuramente, da qualche parte, memorizzi
la scelta dell'utente per capire quale finestra utilizzare come figlia della
Form2; e' sufficiente che tu mantenga questa opzione anche sotto forma di
variabile di tipo Form, per poterla usare sia con SetParent che con Unload,
senza bisogno di impazzire dietro all'API
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 Inoltre non puoi comunque fare la SetParent se la form non è caricata!
Facendo la setparent ... di suo si scatena l'evento load ...
Devo rivedere un attimo ... ma quello che mi interessa è la
gerarchia a cascata che volevo/speravo poter recuperare
con un'api piuttosto che come hai detto tu.
Tutto qua ... in alternativa ho fatto l'unload secco passando
il nome della form.
Ciao Andrea

 il nome della form.
Allora perchč hai chiesto aiuto? :)
Ciao

 Nessuna funzione API ti può/potrebbe aiutare.
sperando che qualche buon cristo avesse fatto una api
che mi dicesse indipendentemente dal controllo parent
rimappato quale fosse il suo "contenitore" originale.
Evidentemente mi sono illuso troppo ;)
Ciao Andrea

 es. form1.text1.text = "ciao".
[SNIP]
Non e' un problema di PC disastrato, e' un comportamento normale.
Non hai impostato nessuna property, ma ne hai sicuramente lette; in
particolare avrai letto la property hWnd per poter usare SetParent, e per
forza di cose non puoi avere un handle di finestra senza che la finestra
esista, visibile o no...
