Newsgroup: it.comp.lang.visual-basic
Titolo: Domanda sulle variabili

Salve ho da poco Visual Basic 5.0 Professional e sto imparando a programmare
.
Ho una domanda : come faccio per far si che una variabile presente in un
form sia utilizzabile (con il valore che memorizza naturalmente) in un altro
form all'interno dello stesso project ?
Grazie
Milliken

form all'interno dello stesso project ?
Devi usare un Modulo affinchè la stessa variabile sia visibile a tutto
il progetto...se ti servono maggiorni informazioni dimmelo che ti
mando un sunto di quello che avevano spiegato a me :))


da Form2:
Form1.NomeVariabile
Ovviamente devi essere sicuro che Form1 sia attiva, altrimenti credo
che o scateni il Form.Load con tutto quello che ne segue o ottieni un
errore di oggetto inesistente. Nella prova che ho fatto, la variabile
era stata dichiarata a livello modulo, visibile cioè a tutta la Form1.
--
 
federic...@planet.it
Eliminare NOSPAM dall'indirizzo! Delete NOSPAM from address!

...


Salve ho da poco Visual Basic 5.0 Professional e sto imparando a programmare
.
Ho alcune domande : come faccio per far si che una variabile presente in un
form sia utilizzabile (con il valore che memorizza naturalmente) in un altro
form all'interno dello stesso project ?
Come faccio ad inserire suoni nei miei programmi ?
Si trovano tutorial in italiano per VB5 in rete ?
E quale è il miglior libro cartaceo in italiano per imparare VB5 e quanto
costa ?
Grazie
Milliken

 Non solo, se non erro nel form1 la devi dichiarare public
No, non è necessario.


 mando un sunto di quello che avevano spiegato a me :))
Oppure basta che dichiari la variabile Public nella sezione dichiarazioni
del form.
Pio per accedere, in questo caso devi fare:
Form2.MiaVariabile
Ciao
--
Diego Mazzaro
"L'importante non è conoscere tante cose ma sapere dove trovarle" A.
Einstein
http://space.tin.it/computer/btqmaz/diego

--
Ne sei sicuro? A proposito dell'istruzione Dim la guida dice:
Le variabili dichiarate con Dim a livello di modulo sono disponibili per
tutte le routine incluse in tale modulo.
E poi basta fare la prova...


Appunto, io l'ho fatta e vedevo la variabile da un altro form pur non
avendola dichiarata Public, ma solo con la Dim e visibilità a livello
modulo.


modulo.
Scusa se insisto, ma ti dispiacerebbe incollare il codice seguente in due
form diversi nello stesso progetto?
form1:
Option Explicit
Dim d As String
Public pub As String
Private priv As String
Private Sub Form_Load()
d = "dim"
pub = "public"
priv = "private"
Load Form2
Unload Form2
Unload Me
End Sub
form2:
Private Sub Form_Load()
MsgBox "Dim=" + Form1.d, vbOKOnly
MsgBox "Public:" + Form1.pub, vbOKOnly
'MsgBox "Private:" + Form1.priv, vbOKOnly
End Sub
A me al momentodi caricare il form2 dà questo errore in corrispondenza del
primo msgbox:
"Errore di compilazione:
impossibile trovare il metodo o il membro dei dati"
Se a te non lo fa, vuol dire 2 cose:
1)sono un coglione (e fin qui...)
2) Ho un grosso problema col mio vb
Fammi sapere...

 Scusa se insisto, ma ti dispiacerebbe incollare il codice
seguente in due form diversi nello stesso progetto?
[...]
Ehi, ragazzi... senza far nomi, ma ho l'impressione che uno di
vuoi quando scrive modulo intenda "un modulo" mentre l'altro
intenda "qualsiasi cosa in cui ci possa scrivere codice"...
Sbaglio?
--
Ciao.
Maurizio
--------
?SPQR(C)
 X


In linguaggio tecnico, modulo è un file in formato testo con
estensione .BAS in cui inserire, dichiarazioni, sub, functions, ecc.
con visibilità e vita globale, mentre i form, beh, dovremmo sapere
cosa sono i form.
Ma gli stessi testi VB a volte parlano (per le variabili) di
visibilità a livello modulo intendendo invece a livello form. Quindi,
perdonaci la poca chiarezza.


...


 Ma gli stessi testi VB a volte parlano (per le variabili) di
visibilità a livello modulo intendendo invece a livello form.
Quindi, perdonaci la poca chiarezza.
Senza perdonare niente a nessuno, che' non e` il caso...
potremmo anche dire che giustamente si usa l'espressione "a
livello modulo" in quanto i moduli si dividono in moduli
propriamente detti e in moduli di classe. E questi ultimi, a
loro volta, si dividono in moduli di classe propriamente detti
ed in "form", ovvero moduli di classe dotati di interfaccia.
Sbaglio?
La differenza, in ordine alle variabili, sta appunto in cio`
che giustamente hai scritto: "visibilita` e vita globale". Con
la precisazione che, in caso di omonimia delle variabili, per
i *moduli* diventa obbligatoria la forma, normalmente
facoltativa, NomeModulo.NomeVariabile per le chiamate
dall'esterno.
Discorso diverso per le variabili a livello di modulo di
classe, e quindi di form. In questo caso tale forma
NomeModulo.NomeVariabile e` obbligatoria.
Una conseguenza spiacevole:
' Form1
Option Explicit
Public pippo
Private Sub Command1_Click()
  MsgBox Modulo1.pippo
End Sub
Private Sub Command2_Click()
  MsgBox Modulo2.pippo
End Sub
Private Sub Command3_Click()
  Modulo1.prova
End Sub
Private Sub Command4_Click()
  Modulo2.prova
End Sub
Private Sub Form_Load()
  Modulo1.pippo = "Modulo1"
  Modulo2.pippo = "Modulo2"
  pippo = "Form1"
End Sub
' Form2
Option Explicit
Public pippo
Private Sub Form_Load()
  pippo = "Form2"
End Sub
' Modulo1
Option Explicit
Public pippo
Sub prova()
  MsgBox Form1.pippo
End Sub
' Modulo2
Option Explicit
Public pippo
Sub prova()
  MsgBox Form2.pippo
End Sub
e cioe`: al clic su Command4 non vedremo, come ci si potrebbe
aspettare, una MsgBox col testo "Form2", ma una stringa nulla.
NON viene caricato "Form2", quindi NON viene valorizzata la
sua variabile pubblica "pippo". E NON otteniamo errore...
