Printr-o procedura se înţelege, o colecţie de instrucţiuni care este
identificată printr-un nume şi care se execută unitar printr-un singur apel.
Există trei tipuri principale de proceduri: Sub, Function şi Property. Ultimul tip este caracteristic definirii unui obiect si
va fi prezentat ulterior. O procedură de tip Sub poate primi şi transmite informaţii prin intermediul unor
variabile publice sau/şi a unor parametri. Numele procedurii nu are ataşată
nici o valoare. O procedură de tip Function
se deosebeşte prin aceea ca numele procedurii are ataşată o valoare (valoarea funcţiei)
şi poate fi utilizat ca orice altă variabilă din proiect.
Observaţie. Orice instrucţiune executabilă trebuie să aparţină
unei proceduri. Declaraţiile pot să apară şi în afara procedurilor, la nivel de
modul.
Proceduri Sub
Organizarea generală a unei proceduri de tip Sub este
vizib Sub nume (lista_argumente)
instructiuni
End Sub
vizib poate fi Public,
Private, Static şi determină vizibilitatea procedurii, dacă nu este
specificată se consideră implicit Public.
Public - vizibilă pentru toate procedurile şi toate modulele
Private - vizibilă
doar pentru procedurile din modulul unde procedura este declarată.
Static - arată ca
toate variabilele locale din procedură îşi păstrează valorile între apeluri.
nume — numele procedurii.
lista_argumente — lista de argumente, separate prin virgule.
Se admite şi procedură fără argumente ()
Se admite şi procedură fără argumente ()
În corpul procedurii poate exista Exit Sub care determină ieşirea
imediată din procedură.
În forma cea mai simplă argumentele sunt separate prin
virgule şi dacă nu se specifică altfel se consideră a fi transmise prin
referinţă adică modificarea valorii în procedură determină şi modificarea valorii lor în procedura apelantă.
Apelarea unei proceduri se face după sintaxa
Nume_proiect.Nume_modul.Nume_procedura lista de argumente
Nume_proiect.Nume_modul.Nume_procedura lista de argumente
sau
Nume_procedura lista de argumente
unde lista de argumente poate să fie inclusă între paranteze. Argumentele
efective sunt separate în listă prin virgule şi trebuie să respecte ordinea (şi
tipul) argumentelor din definiţia procedurii.
Dacă nu vrem să transmitem toate argumentele se poate folosi
varianta
nume_argument:=valoare_argument
separate prin virgule şi la care nu mai contează ordinea iniţiala
a argumentelor. Se vor specifica doar parametrii care se transmit efectiv (adică
valorile opţionale dorite si toate valorile neopţionale).
Call nume_procedura
(lista de argumente) în acest caz paranteza
este obligatorie.
Proceduri Function
O procedură de tip Function
este similară, ca definiţie, unei proceduri Sub, dar are particularitatea că returnează o valoare prin numele său
(care se comportă deci ca o variabilă).
vizib Function nume (lista_argumente) as Type
instructiuni
nume = expresie
End Function
Se poate ataşa un tip numelui funcţiei (adică valorii funcţiei).
Important cel puţin o instrucţiune trebuie să transmită valoare numelui funcţiei.
Important cel puţin o instrucţiune trebuie să transmită valoare numelui funcţiei.
Valoarea returnată de o funcţie poate fi utilizată într-o
altă expresie prin includerea numelui funcţiei urmat între paranteze, de valorile efective ale
parametrilor.
Apelarea funcţiei
variab= nume (lista_argumente)
Niciun comentariu:
Trimiteți un comentariu