Avevamo detto nella scorsa lezione che se dichiariamo le variabili
localmente allinterno di una procedura di evento, esse nascono
quando va in esecuzione levento e muoiono al termine di esso.
Le variabili possono anche appartenere a tutte le procedure evento
di una stessa finestra oppure essere comuni e visibili a tutte
le finestre del nostro progetto, in tal caso occorre dichiararle
in modo diverso.
Variabili pubbliche allinterno di un Form
Se abbiamo bisogno di una variabile che mantenga il valore (ossia
non muoia al termine di un evento) e sia visibile allinterno
di tutto il Form, occorrerà dichiararla nella parte più alta della
finestra del codice del Form, ovvero prima di tutte le procedure
di evento.
Dim Importo as long
Private Sub
.
End Sub
Private Sub
.
End Sub
.
Se vogliamo che questa variabile sia utilizzata anche da altre Form,
occorre dichiararla, nella stessa posizione, utilizzando la parola
chiave Public.
In questo modo, le altre finestre, per fare riferimento ad essa
devono far precedere il nome della finestra a quello della variabile
(separato da un punto), perché la variabile appartiene alla finestra
ed esiste solo se la finestra è caricata in memoria.
Ad esempio, per utilizzare la variabile pubblica Importo della finestra
FrmInvoice dalla finestra FrmCustomer, occorre utilizzare la seguente
sintassi:
TxSomma = FrmInvoice.Importo
Variabili globali
Quando si presenta la necessità di fare in modo che un valore
sia accessibile da tutte le procedure presenti nell'applicazione,
indipendentemente dal form in cui esse si trovano, e che questa
variabile non appartenga a nessuna Form in particolare, è necessario
utilizzare per la dichiarazione la parola chiave Global.
Una variabile dichiarata in questo modo è detta globale. La sua
dichiarazione non può essere fatta all'interno di un form
(proprio perché deve essere indipendente da ognuno di essi), ma
deve essere effettuata in un modulo.
E molto semplice, basta utilizzare la parola chiave Global
(va bene anche Public) anziché Dim e mettere listruzione allinterno
di un modulo.
Esempio di dichiarazione di una variabile globale allinterno
di un modulo:
Global Autore as String
I moduli
I moduli standard (o moduli di codice) sono componenti del progetto
che contengono del codice puro (vengono memorizzati su disco con
estensione .BAS), ovvero non contengono parti grafiche e possono
contenere dichiarazioni di variabili, procedure e funzioni. Solitamente
vengono utilizzati per contenere le funzioni e le variabili comuni
a tutte le finestre, un sorta di libreria per intenderci.
Per aggiungere un modulo al progetto scegliere, dal menù Progetto,
la voce Inserisci Modulo.
Il modulo ha una proprietà Name, inputabile dalla solita finestra
delle proprietà. Con tale nome il modulo verrà visualizzato, insieme
alle Form, nella finestra del progetto. Quel nome, inoltre, è anche
quello che ci viene proposto in fase di salvataggio su disco del
file.
Esempio
Se aggiungiamo un modulo che chiamiamo Libreria, in fase di salvataggio
del progetto ci verrà proposto da Visual Basic di salvarlo nella
directory dove già è memorizzato il progetto, con il nome LIBRERIA.BAS,
eventualmente modificabile.
La InputBox
Per far immettere allutente dei valori, si possono utilizzare
le caselle di testo allinterno di una finestra, oppure si
può utilizzare una funzione (ossia unistruzione che restituisce
un risultato) che ci mette a disposizione Visual Basic: la InputBox.
E molto simile alla MsgBox (ricordate ??), apre una piccola
finestrina con un messaggio, con la differenza che dà la possibilità
di inserire del testo. Possiamo specificare la frase da visualizzare
ed il titolo elencandoli tra parentesi e virgolette.
Essa ci restituisce poi un risultato che possiamo memorizzare in
una variabile.
Questo esempio memorizza nella variabile Frase ciò che lutente
ha digitato nella finestrina avente il titolo Prova
a destra della dicitura Inserisci una frase:
Frase = InputBox( Inserisci
una frase, Prova)
Se lutente digita Ciao la variabile Frase conterrà
Ciao.
Applicazione di esempio
Il listato di codice che segue rappresenta un piccolo progetto
che allavvio della Form1 chiede il nome dellautore della
procedura, lo memorizza in una variabile globale Autore.
Nella Form2, dal pulsante Informazioni, è possibile
visualizzare il nome dellautore del programma.
Per provarlo è sufficiente creare un nuovo progetto, aggiungere
una seconda Form al progetto, aggiungere un Modulo, mettere un pulsante
CmdApriFinestra sulla Form1 e un pulsante CmdInfo sulla Form2, copiare
il codice qui sotto
ed il gioco è fatto!!!
Codice da inserire
nel modulo
Global Autore As String
Codice da inserire nella Form1
Private Sub CmdApriFinestra_Click()
Form2.Show
End Sub
Private Sub Form_Load()
Autore = InputBox("Inserire il nome dell'autore del progetto",
"Attenzione")
End Sub
Codice da inserire nella Form2
Private Sub CmdInfo_Click()
MsgBox Autore
End Sub
Facile vero??? La prossima lezione diventeremo ancora più bravi!!
Torna all'indice Generale del corso di Corso di Visual Basic di Software Planet