Newsgroup: it.comp.lang.visual-basic
Titolo: Re: Passare variabile ad altra form

 Ciao Max
Allora ecco le istruzioni per l'uso per VB6:
1) apri la finestra di codice di form1
2) seleziona il menu Tools-> Add Procedure
3) scrivi il nome della tua proprieta' (username la 1^ volta password la 2^ volta)
4) seleziona l'opzione Property quindi dai l'OK
5) cambia il tipo Variant di default in String
e il gioco e' fatto
- per leggere una proprieta' usa form1.username = username ecc. (routine Get)
- per assegnarla viceversa usa form1.username = "pincopallino" (routine Let)
Comunque queste cose dovresti averle gia' studiate da qualche parte,
se non sai questo vuol dire che sei ancora all'ABC, quindi, ascolta il mio consiglio studia prima di fare delle domandine

 Ciao Max
hai due possibili soluzioni:
1) quella volgare, fare due variabili public (cioe' globali e quindi visibili dall'intero progetto)
2) quella raffinata, fare due proprieta' del form1 che poi saranno lette da form2
username = form1.username
password = form1.password



 Come faccio a passare quell'ID dalla form1 alla form2?
La dichiari "public" nella form2 e la richiami con: 'form2.variabile'
Es:
Nelle dichiarazioni del form2
Public sVariabile as String
In qualsiasi sub o function di form1
form2.sVariabile="Io ti vedo anche da qui"
Ciao
-- 
.o0-- I.d.N. alias JYD --0o.
Please Cut "-some trees-" for reply 



 password = form1.password
In che modo posso creare due proprietà del form1?
Cosa devo scrivere e dove?
Grazie per l'aiuto
Ciao Max

 In che modo posso creare due proprietą del form1?


 Cosa devo scrivere e dove?
A memoria....
Nelle dichiarazioni:
Private sPassword as String 'Questa variabile viene "vista" solo all'interno 
del form dove la dichiari
'se vuoi che la proprieta' "Password" possa essere impostata dall'esterno 
aggiungi:
Property Let Password(sPwd as String)
    sPassword=sPwd
End Property
'se vuoi che la proprieta' "Password" possa essere letta dall'esterno 
aggiungi:
Property Get Password() as String
    Password=sPassword
End Property
Quando da qualsiasi altra sub dell'applicazione esegui:
form.Password="mia password"
in form2 viene eseguita la "property let" che carica il valore che gli passi 
(sPwd) in sPassword che non sara' "visibile" dall'esterno del form2.
Ovviamente all'interno della property puoi eseguire tutto il codice che 
desideri (controllo sulla validita', formato ecc ecc).
Con il mio suggerimento precedente tutti questi controlli li dovresti fare 
prima di impostarla e, aspetto "peggiore", e' visibile da tutti gli altri 
form.
Come gia' scritto se vuoi limitare solo la lettura o solo la scrittura di 
una proprieta' devi semplicemente togliere una delle due property.
Le property let vengono richiamate quando imposti il valore di una 
"proprieta'", al contrario le property get vengono richiamate quando vuoi 
leggerne il contenuto.
Esegui il codice con F8 capirai meglio il meccanismo delle property get/let
Ti consiglio di documentarti maggiormente prima sulla visibilita' delle 
variabili e poi anche un po' sulle classi e gli oggetti, ti si aprira' un 
mondo nuovo......
Ciao


 Come faccio a passare quell'ID dalla form1 alla form2?
Senza andare a scrivere codice per inventarsi nuove proprietà:
form2.Tag = ID
form2.Show
Sperando che non usi la tag già per altre cose
--
Greg

 Come faccio a passare quell'ID dalla form1 alla form2?
Io passo i dati nella fase di load del form2, ovvero:
-------------- questo in form1---------------
load(form2)
form2.id
=id
...
...
... tutte le altre proprietà di form2 da settare ...
...
...
form2.show()
---------------------------------------------
Praticamente, invece di chiamare direttamente il metodo show() di form2,
prima faccio il load (cosi' che viene caricato form2 in memoria), setto le
proprietà che mi interessano, e poi faccio lo show().
Se non vado errato, facendo il load() di form2 attivo l'evento initialize di
form2 (e non load!), mentre quando faccio show() parte l'evento load().
-- 
Ciao,
 Fabrizio
=== 
http://www.negusweb.it
 ===

 form2 (e non load!), mentre quando faccio show() parte l'evento load().
obiezione, vostro onore!
10: con Set mioForm = New FormQualcosa scateni l'inizialize,
20: con Load mioForm scateni l'inizialize se non hai gia` fatto la New
	e quindi a ruota il load.
30: se fai mioForm.Show mostri soltanto il form, se non ne hai invocato
	precedentemente il Load, altrimenti goto 20 :-)
-- 
ciao, hal

 precedentemente il Load, altrimenti goto 20 :-)
E' vero ...
