Newsgroup: it.comp.lang.visual-basic
Titolo: Problemone!

Strano, eh? ;-)
Non riesco a passare una variabile dichiarata come Public nel BAS da un form 
che la calcola ad un altro form che la utilizza; o meglio la variabile in 
questione viene calcoata correttamente in quanto la visualizzo con un MsgBox 
prima di "passare" all'altro Form, ma il Form di destinazione che la 
utilizza si "ricorda" il valore del calcolo precedente e quindi devo fare 
due volte la stessa operazione per passare il valore corretto al Form di 
destinazione.
Ho provato, come facevo in "tempi remoti" a scrivere il valore della 
variabile calcolata dla primo From in un file Output e poi ho aperto tale 
file nel Form di destinazione per leggere il valore della variabile: stessa 
cosa!
La variabile "letta" è quella del calcolo precedente pur essendo però 
scritta correttamente all'interno del file "di scambio"!
In pratica succede questo:
Form1 -> "A" vale 4 e viene visualizzato "4" mel MsgBox di controllo (non si 
sa mai...) salvo su file output la variabile A ed il contenuto di tale file 
è "4" scarico il From1 e passo al Form2
Form2 -> apro il file e leggo la variabile contenuta: A = "4".... tutto bene 
FINO A QUI!
Scarico il From2 e torno al Form1 e stavolta la variabile "A" vale 9... nel 
From2 mi ritrovo sempre "4"!!!!
A meno che non eseguo il calcolo 2 volte ,allora la variabile viene 
correttamente riconosciuta dal Form2
E questo accade sia DIMensionando A come Public nel file BAS, sia usando lo 
stratagemma del file "temporaneo" per passare la variabile da un Form 
all'altro.
Per favore mi dite cosa succede?
Perchè VB6 ha questa memoria "prodigiosa" ovvero io ho questa demenza 
"scandalosa"?????
Grazie.
(G)

 che la calcola ad un altro form che la utilizza
Non è che hai dimensionato la variabile anche nel secondo form?
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
Se i tempi non chiedono la tua parte migliore, inventa altri tempi. 
(Baolian, libro II, vv. 16-17)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Non è che hai dimensionato la variabile anche nel secondo form?
No!
la variabile DIMsensionata in BAS come Public appare, appunto, solo nel file 
BAS.
Per tagliare la testa la toro ho scritto il contenuto di tale variabile, 
assegnandola ad una nuova variabile "locale" (IDcli) all'interno di un file 
random: ebbene pur essendo il valore scritto corretto, il VB6 si "ricorda" 
il valore della scrittura precedente!
Come mai?
Nel Form4 ho la ListBox dalla quale scegliere il libro che mi interessa:
Private Sub List1_Click()
Dim IDcli As Integer
IDcli = 0
IDcli = Val(Right$(List1.Text, 5)) -> questo perchè utilizzo l'IDlibro che è 
DIVERSO da List1.ListIndex in quanto visualizzo
                                                         in ordine 
alfabetico e l'IDlibro è invece dipendente dall'ordine di inserimento dei 
titoli ed è
                                                         quindi il 
"puntatore" che punta all'interno del file random ove sono memorizzati i 
vari titoli.
MsgBox IDcli -> IDcli è EFFETTIVAMENTE l'IDlibro che mi interessa!!!
Open "c:\IDlibro" For Random As #1 Len = 10
RecLibro.l1 = IDcli
Put #1, 1, RecLibro
Close #1
Reset
Set Form4 = Nothing
Unload Form4
Form7.Show
End Sub
--------------------
Nella Form7 ho scritto:
Private Sub Form_Load()
Dim a As Integer
Dim IDcli As Integer
IDcli = 0
Open "c:\IDlibro" For Random As #1 Len = 10
IDcli = Val(RecLibro.l1)
Close #1
Label13.Caption = IDcli
....
........
Ebbene IDcli NON varia se non DOPO LA SECONDA VOLTA CHE SELEZIONO LO STESSO 
TITOLO.
Eppure l'IDcli viene scritto correttamente all'interno del File "temporaneo" 
IDlibro che creo all'upo nel Form4 in quanto l'ho aperto con il Notepad e 
c'è scritto il valore corretto!
Per favore mi dico cosa succede?
Grazie e scusa la lughezza.
(G)