Newsgroup: it.comp.lang.visual-basic
Titolo: [newbie] passaggio variabili tra form

Salve,
in un progetto, se ho 2 form, dal primo faccio una maschera per
collegarmi al database, poi carico il secondo form se la connessione va
bene, solo che nel secondo le variabili non risultano dichiarate ed
inoltre non conservano i dati memorizzati nel primo form. 
Devo pure riconnettermi al database.
C'e' un modo per conservare, nello stesso progetto, tra diversi form, le
variabili, i tipi, ecc..???
grazie.


Se lasciamo da parte la possibilita' di dichiarare variabili globali, puoi
vedere la faccenda (ahime', gia' discussa innumerevoli volte) in questi
termini:
- Le form sono classi.
- In particolare esiste sempre un'istanza globale, un oggetto, per ogni form
definita nel progetto; tale oggetto e' rappresentato da una variabile che ha
lo stesso nome della classe (quindi l'istanza predefinita di Form1 e'
accessibile attraverso la variabile oggetto 'Form1').
- I membri di un oggetto (= proprieta' e metodi) definiti come pubblici sono
accessibili dal codice esterno tramite la sintassi 'NomeOggetto.NomeMembro';
per esempio 'Form1.Show'.
- Tutti i *controlli* definiti in fase di design sono implicitamente membri
pubblici della form.
- Puoi aggiungere membri pubblici a tuo piacimento in ciascuna classe,
quindi anche nelle form, usando la sintassi appropriata (Sub, Function o
Property Get/Let).
Con questo hai la soluzione al tuo problema, e una volta entrato nel
meccanismo in realta' anche a molti altri; nota in particolare gli ultimi
due punti.
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 le variabili, i tipi, ecc..???
Senza nulla togliere alla esaustiva spiegazione di Luca Dormio. Se sei un
newbie cerco di darti quelle basi che ti consentiranno di capire ciò che ha
detto Luca.
Dunque
Per avere delle variabili che valide anche quando un form è stato scaricato
sei costretto (almeno agli inizi) a dichiararle come pubbliche.
In questo caso in un modulo .bas scrivi
Public MiaVariabile as String
Potrai notare come MiaVariabile sia accessibile da tutti i form e i moduli
del tuo progetto.
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
www.nicolaottomano.it

 sei costretto (almeno agli inizi) a dichiararle come pubbliche.
Usale con parsimonia, perchè è difficile raddrizzare un albero storto.
Si fa meno fatica quando l'albero è ancora giovane ;)
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 
Ma i moduli vengono caricati prima dei form??

> Ma i moduli vengono caricati prima dei form??
Vengono caricati all'avvio dell'applicazione. Quindi le variabili sono
sempre disponibili fino alla chiusura del programma.
Tieni conto però che il metodo che ti ho suggerito va bene per piccole
applicazioni.
Quindi tieni presente (e metti sicuramente in conto) di approfondire il
consiglio che ti ha dato Luca Dormio se vuoi sviluppare qualcosa di
professionale.


 
Ok, bene, solo un'ultima informazione:
Come mai il metodo che mi hai indicato tu è sconsigliabile da utilizzare
per applicazioni di una certa entità? Consumo di memoria? Confusione con
i nomi delle variabili?
Inoltre la stessa cosa si può fare con il contenuto di una textbox?
es:
Public TexBoxName.Text As String
??

 Public TexBoxName.Text As String
No.
Che senso avrebbe?
Le parti di interfaccia lasciale solo a video... ti risparmierai un 
mucchio di casini.
Ciao

La risposta di Zanna è estremamente esplicativa.
Non credo si debba aggiungere altro.


 La risposta di Zanna è estremamente esplicativa.
Come sempre :PPPP
Ciao

 Come sempre :PPPP
<me invidioso>
:-P
</me invidioso>
