Corso di Visual Basic

Le variabili II

 

Avevamo detto nella scorsa lezione che se dichiariamo le variabili localmente all’interno di una procedura di evento, esse nascono quando va in esecuzione l’evento 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 all’interno di un Form
Se abbiamo bisogno di una variabile che mantenga il valore (ossia non “muoia” al termine di un evento) e sia visibile all’interno 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 l’istruzione all’interno di un modulo.
Esempio di dichiarazione di una variabile globale all’interno 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 all’utente dei valori, si possono utilizzare le caselle di testo all’interno di una finestra, oppure si può utilizzare una funzione (ossia un’istruzione 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 l’utente ha digitato nella finestrina avente il titolo “Prova” a destra della dicitura “Inserisci una frase”:

Frase = InputBox( “Inserisci una frase”, “Prova”)

Se l’utente digita “Ciao” la variabile Frase conterrà “Ciao”.

Applicazione di esempio
Il listato di codice che segue rappresenta un piccolo progetto che all’avvio della Form1 chiede il nome dell’autore della procedura, lo memorizza in una variabile globale Autore.
Nella Form2, dal pulsante “Informazioni”, è possibile  visualizzare il nome dell’autore 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