Newsgroup: it.comp.lang.visual-basic
Titolo: Variabili condivise tra più forms

Ciao a tutti, domanda:
coma faccio a rendere disponibile al form2 le variabili che ho dichiarato
nel form1?
e in più: come faccio a invocare dal form2 procedure e funzioni appartenenti
al form1?
grazie a tutti,
ciao, andrea

 al form1?
Stessa cosa, metti le funzioni nel modulo, oltre a chiamarle da tutti i Form
che vuoi, puoi anche riutilizzarle per altri progetti....ti carichi il
modulo e hai già le funzioni fatte!
Ciao
Fabio


 al form1?
Una parola (chiave) per tutto: 'Public'
Un tasto per tutto: F1
in due parole:
'Form1
Public ID As Long
Public Sub FaiQualcosa()
'Form2
Dim x As Long
x = Form1.ID
Form1.FaiQualcosa
Ciao
--
Luca Dormio
luca....@tin.it

 ha scritto nel messaggio
news:9hf08j$5ie$1...@pegasus.tiscalinet.it...


Grazie a tutti -- risolto
"Luca Dormio" <lucaFAV...@tinFAVA.it> ha scritto nel messaggio
news:9hev9g$jjo$1...@fe2.cs.interbusiness.it...



[...]


> Perchè usare le public? Non è meglio definire delle proprietà per form1 ?
(Intanto ti ricordo che si risponde sotto)
Poi... visto che l'argomento mi interessa alquanto ti rigiro la domanda:
Perchè NON usare le public? Perchè è "anziche" meglio definire delle
proprietà per form1?


Non mi associo e proseguo la mia solitaria crociata contro le Public.   :-(
Se devi leggere/scrivere direttamente proprità di un form da un altro,
ovviamente, basta dichiararne la dipendenza:
pippo= form1.pluto, dopo aver dichiarato public la variabile contenuta nel
Form1.
Che NON è la stessa cosa di una variabile globale a tutto l'applicativo!!!!
Se devi usare variabili globali (ti consento al più la connection database e
qualche impostazione generale dell'applicazione), creati una classe che
contenga i dati da scambiare tra i form e referenziali attraverso di essa.
ciao
ugo

 Ciao
[SNIP]
E io cosa ho fatto ?!?! :-)
Magari non era molto chiaro, ma quando ho scritto
'Form1
Public ID As Long
Public Sub FaiQualcosa()
intendevo definirle nelle <general> di Form1...


 writes:
UM> Non mi associo e proseguo la mia solitaria crociata contro le Public.   :-(
Mi spiace Ugo, ma oltre alle  questioni di velocità di accesso ci sono
un'altro paio di punti:
	puoi  sempre riferire  una variabile  pubblica del  modulo mdl
	come mdl.pubblica,  e sia in questo caso  che nell'esempio che
	facevi tu  non c'è alcuna differenza sostanziale  in quanto in
	nessuno dei  due casi  poni delle regole  sulla valorizzazione
	della  variabile.   Molto   meglio  della  form.varpubblica  è
	metterla private nel modulo e poi fare la coppia getter-setter
	(o mettere la coppia getter-setter nel modulo);
	Ci sono casi in cui  varie istanze di oggeti dello stesso tipo
	hanno  bisongo  du  _una_unica_variabile_  indipendente  dalla
	esistenza delle istanze degli oggetti stessi.
--
Gian Uberto| main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Lauri      |                        David Korn, 1987 ioccc best one liner 
(aka saint)|-------------------------------------------------------------------
em@ail: 
sa...@eng.it
 ( vedere X-nospam nello header - see X-nospam in header )


[...]


 proprietà per form1?
E' un argomento lungo, e che è stato dibattuto decine di volte. Mi limito a
riportare alcuni punti sulle generali, sperando che qualcuno abbia il tempo
di approfondire...
1) Leggibilità del codice
2) Riusabilità del codice
3) sincronizzazione degli accessi alle variabili
4) Effetti collaterali (cambi la variabile in un modulo, ed un altro modulo
che la usa e non ha tenuto conto dei possibili cambiamenti della variabile
crasha)
5) Volendo, ma al giorno d'oggi è decisamente secondario, occupazione di
memoria.
Per contro va detto che con le globali c'è un leggerissimo aumento di
prestazioni.
Ciao
Alfonso

"Luca Dormio" <lucaFAV...@tinFAVA.it> ha scritto nel messaggio
news:9hf1kj$905$1...@fe1.cs.interbusiness.it...

Io invece intendo private nel modulo accessibili attraverso una proprietà:
Dim ID as long
Property Get ID() as long
Property Set ID(lNewValue as long)
altrimenti non cambia niente, il problema non è nel naming, ma
nell'accessibilità della variabile.
Ciao
Alfonso

 esistenza delle istanze degli oggetti stessi.
E dove sarebbe l'icompatibilità di questo problema con la creazione di una
classe, poniamo, settings, istanziabile in "varie istanze di oggetti dello
stesso tipo"?
ciao
ugo

 passare alla democazia. Capito Pal ? :)
complimenti per il neologismo.
la -z- e' dura, immagino ? :))
cmq, ci siamo passati e stiamo rapidamente tornando alle monarchie,
sembra.
se il novello si accorge delle elezioni bulgare...
carcarlo, principe di cologno...
telecrazie, in ogni caso.
accento sulla i, non sulla a.
non quelle della gruber :)
e' il secondo "[ot]" che aggiungo in un subject oggi.
da non credersi.


Francamente credo oggi sia non-misurabile.
ciao
ugo

 nell'accessibilitą della variabile.
Ok, mi immaginavo ti riferissi alle Property Get/Set che trovo anch'io piu'
corrette ma concettualmente e' uguale... volevo sottolineare che, da qualche
parte, un Public lo devi piazzare, che sia 'Public ID As Long' o 'Public
Property Get ID() As Long' (si, nel secondo caso puoi omettere public ma e'
implicito)
P.S.
Ah... grazie, ora ho capito, ho letto il thread "[OT ...]" :-)


> esistenza delle istanze degli oggetti stessi.
UM> E dove sarebbe l'icompatibilità di questo problema con la creazione di una
UM> classe, poniamo, settings, istanziabile in "varie istanze di oggetti dello
UM> stesso tipo"?
Il caso  più banale che  mi viene in  mente è quello di  una variabile
utilizzata per  contenere l'ID del  prossimo oggetti di tipo  Tipo che
istanzierai.  Quella  deve  preesistere  ogni  oggetto.  Non  mi  sono
spiegato  bene, non occorre  che sia  pubblica ma  _deve_ stare  in un
modulo  perché deve  esistere. Certo,  metterla pubblica  non  è bene,
meglio fare il getter opportuno.



Appunto, l'hai scritto: non occorre che sia pubblica!
ciao
ugo

 writes:
UM> No, non mi sono spiegato.
UM> Se ho bisogno (come da subject originale) che il  form pippo veda una
UM> variabile tipica del form pluto, poniamo la pluto.miavar, non creo una
UM> miavar in un modulo dichiarandola Public!
Hmmm. got  the point. In questo caso  sai che quando pippo  è valido è
valido anche pluto.


 da non credersi.
si torna ai bei vecchi tempi ?