Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Global, Public, Private, Dim, ....?????

Qualcuno puo' spiegare in modo dettagliato la differenza tra tutte
questi modi per dichiarare variabili e costanti?
Ad esempio che differenze c'è nel dichiarare in un modulo BAS 
Global Const PIPPO = 3
Public Const PLUTO = 5 ?
E le stesse dichiarazioni fatte all'interno di una form?
E le stesse dichiarazioni fatte per delle variabili?
Grazie, Angelo

E le stesse dichiarazioni fatte per delle variabili?
Nel caso del BAS vale la prima risposta; nel caso del form invece Public viene
accettato...
In generale:
Global - veniva (fina a VB3) usato esclusivamente in un modulo BAS per definire
variabili e costanti valide per l'intero programma. Non so se in VB6 e' ancora
accettato ma suppongo sparira' presto in favore di Public.
Public - assume un significato diverso a seconda del contesto:
1) nella sezione generale di un BAS: come Global
2) nella sezione generale di un Form: (no CONST) visibile in tutto il form e in
piu' rende pubblica la variabile per l'intero progetto; in questo caso va pero'
referenziata attraverso il Form in cui e' dichiarata quindi:
Public Pippo As Integer
'Dentro al form
Pippo=1
'All'esterno
Form1.Pippo=1
in pratica e' come se definissi una nuova proprieta' per Form1
3) nella sezione generale di un modulo di classe (CLS): (no CONST) visibilita'
come per il Form, la variabile diventa una proprieta' della Classe in cui e'
dichiarata.
4) non puo' essere usato per definire una variabile all'interno di una funzione
Private - definisce una variabile locale:
1) nella sezione generale di un BAS: valido per variabili e costanti; sono
visibili da tutte le funzioni contenute nel BAS ma non dal resto del programma
2) nella sezione generale di un Form: come sopra
3) nella sezione generale di un modulo di classe (CLS): come sopra
4) non puo' essere usato per definire una variabile all'interno di una funzione
Dim - definisce una variabile locale:
1) nella sezione generale di un BAS: come Private (omettere per definire una
costante: quindi Dim i as integer o Const i=1)
2) nella sezione generale di un Form: come sopra
3) nella sezione generale di un modulo di classe (CLS): come sopra
4) viene usato per definire le variabili interne ad una funzione, con
visibilita' limitata alla funzione stessa.
Personalmente mi regolo cosi':
Nelle sezioni generali di BAS,Form o CLS: sempre Public o Private, mai Dim
All'interno delle funzioni: Dim (unica scelta)
Private e Public possono essere usati nella dichiarazione di una Sub o Function,
anche in questo caso cambia il significato a seconda di dove e' definita la
funzione; ti conviene cercare "Sub" o "Function" nella guida per saperne di piu'
Ciao
--
Luca Dormio
l...@sig-la.com
ldo...@tin.it

GLOBAL :
Sě, in VB6 č ancora accettato.
Serve per dichiarare una variabile o una funzione visibile anche
dall'esterno dell'applicazione.
Molto utile ad esempio nel caso si compili una DLL che viene richiamata da
un altro programma.
Ciao

Non vorrei sbagliare ma la differenza tra global e public esiste: con global
la variabile è accessibile anche all'esterno del progetto, con public no
--
Lunga Vita e Prosperità

 la variabile è accessibile anche all'esterno del progetto, con public no
No, la differenza non esiste: Global è obsoleto ed è mantenuto per
compatibilità. Le variabili non sono mai viste "al di fuori del progetto",
se messe in un modulo BAS, e se invece sono messe in un form pubblico o in
una classe pubblica vengono trasformate da VB in proprietà, e in questo
senso sono visibili, ma la cosa vale anche per Public.
Domenico