Newsgroup: it.comp.lang.visual-basic
Titolo: [?] [VB6] Variabili tra form

Ho un problema:
Ho 2 form  frmChiamate e frmRadarCliFor
nella prima ho un text box ( di nome txtCliFor) ed un pulsante
Scrivo ad esempio b nel Text box poi  pigio il bottone  faccio:
Dim f As frmRadarCliFor
    'Creo una istanza del form e gli passo la mia variabile
    Set f = New frmRadarCliFor
    f.RadCliFor = txtCliFor.Text
    Load f
    f.Show vbModal ' A scelta Obbligatoria
Sulla frmRadarCliFor:
Option Explicit
Private mRadCliFor As String
Public Property Let RadCliFor(ByVal vNewValue As String)
 ' qui magari puoi anche mettere del codice di validazione
 ' del valore ricevuto.
 mRadCliFor = vNewValue
End Property
Nell' evento load eseguo una query, popolo una lista e quando faccio doppio
click:
Elabora la lista e mi restituisce il codice cliente: e questo lo fa ( ex
Basso)
Mi dovrebbe scrivere in frmChiamate.txtClifFor.Text il valore del codice
cliente:  E NON LO FA
mi si dovrebbe chiudere  : e questo lo fa
Sembra, anzi debuggando e' cosi' , che carichi un' altra frmChiamate,
perche' vedo che processa l'evento load!  Ma Caxxo e' gia' aperta, cosa la
riapri a fare ?????
E poi mi fa vedere la "prima" frmChiamate ovvero quella senza il textbox
aggiornato
Spero di essere stato chiaro.

 riapri a fare ?????
Dichiari degli errori per frmChiamate e non posti nemmeno una riga che 
lo riguarda :)
Come si fa?
Ciao

Scusate!
Mi rispiego un pelo meglio
frmChiamate contiene fra le altre cose( griglia , picture..) txtCliFor e
Pulsante CmdAZ
Private Sub CmdAZ_Click()
Dim f As frmRadarCliFor
   'Creo una istanza del form e gli passo la mia variabile
    Set f = New frmRadarCliFor
    f.RadCliFor = txtCliFor.Text     Load f
    f.Show vbModal ' A scelta Obbligatoria
End Sub
Private Sub Form_Load()
    [altra roba]
    ridimensiono la griglia ecc..
end sub
                        -           -          -
Sulla frmRadarCliFor:  una listbox di nome lstCliFor
Option Explicit
Private mRadCliFor As String
Public Property Let RadCliFor(ByVal vNewValue As String)
 ' qui magari puoi anche mettere del codice di validazione
 ' del valore ricevuto.
 mRadCliFor = vNewValue
End Property
Private Sub Form_Load()
[Crea la query e popola una listbox con i risultati, filtrati con il valore
di mRadCliFor]
end sub
Private Sub lstCliFor_DblClick()
Dim Codice As String
Codice = [CodiceCliente , faccio dei trim ed altre cose]
FINO A QUI TUTTO OK
---> frmChiamate.txtCliFor.Text = Codice
Unload Me
End Sub
debuggando, non appena passo quella riga li mi si posiziona su
Private Sub Form_Load() del frmChiamate ( non lo dice da nessuna parte ma lo
capisco io)
quindi "sembra" che si carichi un'altra form!

 quindi "sembra" che si carichi un'altra form!
Ok, ma il tuo frmChiamate, come lo istanzi?
Ciao
--
Math Parser, VB.Framework : 
http://www.neodatatype.net
Sito Comune               : 
http://www.it-lang-vb.net

 End Sub
Il problema, come aveva gia' intuito Zanna quando ti ha fatto la domanda, e'
proprio qui: tu non stai usando l'istanza di default di frmChiamante (la
variabile nota appunto come 'frmChiamante') ma una nuova istanza 'f'; quando
in frmRadarCliFor fai riferimento a frmChiamante stai appunto puntando
questa istanza predefinita, non quella che hai gia' caricato... ecco quindi
che al primo accesso al controllo txtCliFor viene scatenato il Load
Perche' funzioni devi fare in modo, dal codice di frmRadarCliFor, di
accedere all'istanza corretta di frmChiamante; dato che la variabile f e'
dichiarata locale a cmdIns, non puoi farci conto e quindi devi rivedere un
po' il "giro".
Supponendo tu non voglia usare variabili globali, un sistema e' quello di
aggiungere una ulteriore property a frmRadarCliFor dove memorizzare il
chiamante; per esempio
Dim f As frmRadarCliFor
Set f = New frmRadarCliFor
'una property di tipo Form, o anche di tipo frmCaller se e'
'l'unico "papa'" possibile...
Set f.Caller = Me 'ovvero l'istanza corrente di frmCaller
f.RadCliFor = txtCliFor.Text
Load f
f.Show vbModal
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

Grazie mille a tutti e due.
Ho risolto creando una proprieta' di tipo Form e passando poi a questa il
valore che mi serviva
Ma non ho capito la tua frmCaller
Che cosa e'

 ha scritto nel messaggio
news:UlrWa.10286$cl3.3...@news2.tin.it...

Un qui quo qua :-)
intendevo la tua frmChiamante
