Terza lezione - le routine in Visual Basic
Dopo aver visto in dettaglio le variabili, vediamo meglio le routine. Innanzitutto bisogna dire che le routine, come le variabili, devono essere dichiare: la dichiarazione avviene specificando la parola chiave Sub (in seguito vedremo che si possono utilizzare anche altre parole chiave) seguita dal nome della routine e da due parentesi tonde, la prima aperta e la seconda chiusa (tra poco vedremo cosa si può mettere all'interno delle parentesi). Ad esempio:
La parola Sub può essere preceduta dalle parole chiave Prive o Public (NON da Dim: quest'ultima serve solo per le variabili), a seconda che la routine debba essere visibile solo nel form corrente o in tutto il progetto. Per inserire una routine è talvolta più comodo andare sul menù strumenti e scegliere inserisci routine: nella casella di testo in cui appare il cursore scrivete il nome della routine (le altre opzioni per ora lasciele così come sono) e premete OK. La dichiarazione delle routine serve a indicare dove INIZIA la routine: per indicare dove FINISCE è necessario scrivere End Sub dopo l'ultima istruzione appartenente alla routine.
Quindi:
Nella prima lezione avevo detto che le routine sono un'insieme di più istruzioni: esse risultano molto comode quando si ha bisogno di eseguire più volte uno stesso gruppo di istruzioni, in modo che quando si ha necessità di eseguire una certa operazione, è sufficiente richiamare quella routine anziché riscrivere ogni volta le medesime istruzioni. Supponiamo, ad es., di voler calcolare i quadri dei valori 2, 5, e 8 e di volerli visualizzare nella finestra Immedia: senza usare le routine saremmo costretti a scrivere (ad es. nell'evento Load del nostro form):
Prive Sub Form_Load()
'dichiaro la variabile:
Dim x As Integer
x = 2 ^ 2 'il simbolo "^" serve a indicare l'elevamento a potenza
'stampo il risulto:
Debug.Print x
x = 5 ^ 2
Debug.Print x
x = 8 ^ 2
Debug.Print x
End Sub
Nota: il simbolo " ' " serve a indicare un commento al codice: il commento viene del tutto ignoro da Visual Basic, la sua utilità deriva dal fto che permette a chi legge il codice di comprendere meglio cosa fanno le istruzioni.
Utilizzando invece una routine di nome "Quadro" che calcola il quadro di un numero potremmo scrivere, nella sezione delle dichiarazioni:
Dim x As Integer
___________________________________________________________
Prive Sub Quadro() 'qui inizia la routine
Dim y As Integer'dichiaro una variabile locale
y = x ^ 2 'calcolo il quadro
Debug.Print y 'stampo il risulto
End Sub 'qui finisce la routine
e, nell'evento Load del form:
Public Sub Form_Load ()
x = 2 'imposto la variabile
Quadro 'calcolo il quadro e stampo il risulto
x = 5
Quadro
x = 8
Quadro
End Sub
In un esempio così semplice è poco utile ricorrere alle routine, ma se pense che una routine potrebbe contenere centinaia di istruzioni che vanno ripetute più o meno spesso vi accorgerete della loro grande utilità; un aspetto da non trascurare è infti anche la leggibilità del codice, ovvero la sua facilità di comprensione: utilizzando le routine per eseguire operazioni complesse è molto più semplice capire come funziona un programma (procedendo con gli esempi ve ne renderete conto sempre meglio).
Nell'esempio qui sopra abbiamo imposto una variabile dichiara a livello di modulo (la variabile x) in modo che potesse essere utilizza anche nella routine: in realtà ciò non è necessario, infti è possibile utilizzare il passaggio di parametri alla routine. Un parametro è una variabile che viene comunica alla routine, la quale può utilizzarla più o meno come se fosse una sua variabile locale: in questo modo è possibile travalicare i limiti imposti dall'area di visibilità delle variabili (v. lez. precedente).
Ad es., se noi avessimo dichiaro la variabile x non nella sezione delle dichiarazioni ma all'interno dell'evento Load, avremmo ottenuto un errore del tipo:
perché la variabile non sarebbe sta visibile nella routine quadro (a meno che abbie dimentico di inserire l'istruzione "Option Explicit": d'ora in poi darò sempre per sconto che sia tiva la dichiarazione obbligoria delle variabili). Invece utilizzando il passaggio di parametri questo problema non sussiste più. Per indicare a Visual Basic che la nostra routine vuole uno o più parametri bisogna elencare i parametri, o argomenti, all'interno delle parentesi nella dichiarazione della routine:
Prive Sub Quadro (Param As Integer)
Dim y As Integer
y = Param ^ 2
Debug.Print y
End Sub
Come avrete noto, l'indicazione dell'argomento segue le stesse regole della dichiarazione delle variabili, eccezion fta per la parola chiave Dim (o Prive o public) che in questo caso NON va inserita perché non avrebbe senso: l'argomento di una routine è utilizzabile solo all'interno di quella routine. Per indicare più parametri bisogna separarli con la virgola: ad es:
... (Param1 As Integer, Param2 As String ...) ...
Il nome del parametro non ha nulla a che vedere col nome della variabile passa come argomento (nel nostro caso la variabile x): nel caso in cui i nomi fossero uguali, all'interno della routine verrebbe comunque utilizzo il parametro e non la variabile originaria. All'interno dell'evento load del form potremo ora scrivere:
Public Sub Form_Load()
Dim x As Integer
x = 2
Quadro x
x = 5
Quadro x
x = 8
Quadro x
End Sub
e nella finestra immedia vedremo:
Nuralmente l'argomento da passare alla routine può essere una variabile dichiara da noi, ma anche un valore fisso: possiamo quindi fare a meno, nel nostro caso, di utilizzare la variabile x e scrivere direttamente:
Public Sub Form_Load()
Quadro (2) 'oppure Quadro 2
Quadro (5) 'oppure Quadro 5
Quadro (8) 'oppure Quadro 8
End Sub
ottenendo il medesimo risulto: ogni volta che viene chiama la routine quadro, la variabile param assumerà di volta in volta il valore 2, 5, 8. Avrete sicuramente capito che per eseguire una routine è sufficiente scriverne il nome, eventualmente seguito dagli argomenti richiesti dalla routine: gli argomenti andranno separi da virgole nel caso siano più di uno (ad es. quadro 2, 3, "Pippo" se gli argomenti sono tre: i primi due numerici e il terzo una stringa). E' però possibile anche utilizzare l'istruzione Call, seguita dal nome della routine e dai parametri, questa volta però obbligoriamente racchiusi tra parentesi:
Call Quadro (2)
oppure:
Call Quadro (2, 3, Pippo)
se gli argomenti sono diversi.
L'uso delle parentesi sarà fondamentale nell'uso delle funzioni, che vedremo la prossima volta.
Note sul corso:
I diritti di ognuna delle lezioni presente in queste pagine appartengono all'autore Giorgio Abraini. La riproduzione e la divulgazione delle stesse sono consentite solamente dietro citazione di fonte ed autore.
Per suggerimenti, consigli o richieste conttare giorgio102@libero.it.
Fonte : VBItalia.it