Newsgroup: it.comp.lang.visual-basic
Titolo: Per favore, sembra che a nessuno interessi.....

Semplicemente, in tutte le pubblicazioni che ho consultato, tutti i siti che
ho visitato e parecchi messaggi che ho letto, non ho mai trovato nessuno che
parlasse della comunicazione tra form...
Semplicemente posso trasferire dei dati da , che so, un form padre ad un
form figlio? Eventualmente, poi, questo form figlio può restituire qualcosa
al padre? Come?
Se ,poi, uso due form contemporaneamente (cioè non modali) posso da uno dei
due fare riferimento, per esempio, ad una textbox presente sull'altro?
Veramente non ho mai trovato niente in proposito.
Giovanni Ascione

...

1) Le variabili dichiarate a livello di modulo (.bas) sono GLOBALI quindi
viste da tutte le form della 2 applicazione.
2) da qualsiasi FORM puoi accedere ad un qualsiasi controllo di un'altra
form sia essa caricata gia' in memoria, sia no. Alcune volte mi e' capitato
da una form di simulare la pressione di un tasto che si trova su di
un'altra.
se ad esempio Form1 chiama Form2 ed all'interno di Form2 vuoi cambiare una
textbox di form1 basta scrivere :
form1.text1.text = "CIAO"
ed il gioco e' fatto o se preferisci :
form1!text1.text = "CIAO".
che e' perfettamente equivalente.
Ora supponi che Form1 chiama Form2 e form2 chiama form3, da form2 prima
ancora che sia caricata Form3 scrivi :
form3.text1.text = "CIAO"
nessun problema funziona perfettamente, solo che accedere ad una proprieta'
di un controllo che si trova su di una form non ancora caricata in memoria,
ne forza il caricamento, ma non la visualizzazione. Quindi se all'interno
della Form3 tu gestisci l'evento Load , questa procedura verra' scatenata
dall'assegnazione che ti dicevo sopra.
Ciao e fammi sapere come e' andata.

Mi risulta che non ci siano problemi a far riferimento al text di un form
caricato pur non essendo su di esso.
Se per esempio sei sul Form2 e scrivi "pippo=form1.text1.text" la variabile
ti si riempie con il contenuto del text. L'importante è il riferimento al
form.
Per quanto riguarda lo scambio di dati usa un text o una label nascoste per
lasciare in eredità ad un secondo form delle informazioni mentre magari sul
primo si sta per fare l'unload.
Spero di essere stato esauriente o meglio ancora di aver centrato
l'obbiettivo della domanda.

Come indicato nel post precedente puoi accedere ai controlli di un form da
un altro usando la sintassi NomeForm.NomeControllo. Per quanto riguarda la
comunicazione tra form in generale, la soluzione migliore é quella di creare
nei form delle property procedures e utilizzare i forms come se fossero (ed
in effetti lo sono) delle classi.
Sconsigliato vivamente l'uso di variabili globali.
Ciao,
Corrado

...

Sconsigliato l'uso di variabili Globali ????????   Non siamo
daccordo..........
Non bisogna abusarne ma in certi casi sono praticamente indispensabili.
Ciao.
Ven.

Non mi fraintendere anche io faccio uso di variabii globali, in alcuni casi
sono l'unica alternativa ad una struttura piú pulita ma molto piú
complicata,purtroppo peró molti programmatori ne fanno un uso eccessivo (ad
esempio per la comunicazione tra forms)
Personalmente,dove possibile, cerco di utilizzare variabili con scope il piú
ridotto possibile.
Ciao,
Corrado

...

Ora condivido a pieno e sono in perfetta sintonia con quanto affermi
sopra.......  ;-))
Ciao
Ven.

 Veramente non ho mai trovato niente in proposito.
Mah...
--
Roal Zanazzi
z...@iol.it

Se ,poi, uso due form contemporaneamente (cioè non modali) posso da uno
deidue fare riferimento, per esempio, ad una textbox presente sull'altro?
----------------------------------------------
 Donatello Rizzo - Software Designer
 Via P. Nenni, 4 - 73040 Melissano (LE) ITALY
 Tel.: 0833/581370 - Mob.: 0347/3024131
 E-Mail: 
rav...@mail6.clio.it
------- KYOKUSHINKAI KARATE HOME PAGE --------
--  
www.geocities.com/Colosseum/Arena/1919/
 --
----------- THE RIZZO'S OBSOLETES ------------
 
http://www.geocities.com/Area51/Meteor/6686/
---------------------------------------------- 
--
Posted from [195.60.128.101]
via Mailgate.ORG Server - 
http://www.mailgate.org

 sopra.......  ;-))
anch'io (scusate l'intromissione). Una volta mi č capitato fra le mani un
programma che dovevo "risistemare" perché "funzionava, ma aveva solo
_qualche_ bug".... MAAAAAMMAMIAAAA!!!!
Altro che variabili globali, il codice era PIENO di variabili
"pluridichiarate": con lo stesso nome una variabile appariva dichiarata in
una routine, nel modulo come Dim e in un altro modulo come Public;
moltiplicate questo per 10-15 e ottenete come risultato il mal di testa che
ho avuto per due settimane!!!! Volevo menare quel tizio che aveva fatto
questo !!!!