Elementele componente ale unei aplicatii Visual Basic
Dupa ce ati
proiectat interfata aplicatiei cu ajutorul formelor si a
controalelor va trebui sa scrieti codul care va stabili modul de
executie al aplicatiei dumneavoastra.
Structura unei
aplicatii Visual Basic
O apli 333t196d catie nu este altceva decât o serie de
instructiuni care îi "spun" computerului cum sa îndeplineasca o
anumita sarcina. Astfel, pentru fiecare forma pe care ati
adaugat-o la aplicatie exista un modul al formei (un fisier
cu extensia .frm) unde puteti scrie cod ce îi va determina modul de
"comportare". Modulele formelor
constituie baza majoritatii aplicatiilor create în Visual Basic.
Ele contin declaratii de variabile, constante, tipuri definite de
utilizator, enumerari, proceduri ce gestioneaza evenimentele,
proceduri si functii globale sau locale.
Pe masura ce aplicatiile dumneavoastra devin din ce în
ce mai complicate veti observa ca anumite secvente de cod
va sunt necesare în mai multe module ale formelor. Ca sa nu
rescrieti
acelasi cod de mai multe puteti utiliza modulele standard. Modulele standard (fisiere cu extensia .bas)
contin proceduri si declaratii care pot fi accesate din orice
alt modul al aplicatiei. Modulele standard pot fi folosite si în alte
aplicatii. Puteti adauga module standard la aplicatiile
dumneavoastra cu ajutorul comenzii Add Module din meniul Project.
Modulele claselor constituie fundatia programarii
orientate pe obiecte în Visual Basic. Puteti scrie cod în modulele claselor pentru a crea
obiecte noi, cu proprietati si metode.
Puteti adauga un modul clasa la aplicatie cu ajutorul
comenzii Add Class Module.
Setul de caractere
Pentru a putea scrie instructiuni pe care calculatorul
sa le interpreteze ne folosim de cuvinte. Aceste cuvinte sunt
entitati formate din caractere. În cazul limbajului Visual Basic se
pot folosi urmatoarele caractere (pe care le puteti vedea si pe
tastatura calculatorului):
- literele mari si mici ale alfabetului limbii române: A-Z, a-z; inclusiv
caracterele specifice limbii române:a,â,î,s,t;
- Cifrele sistemului de numerotatie zecimal:0-9;
- Caractere speciale: + - / ^ () [] . , ; :_ ! # % & $ etc.;
- Caracterele speciale perechi: <=, >=, := <>;
- Separatorii: spatiu, tab si caracteru Enter.
Identificatori
Un identificator este numele unui element dintr-un program,
fie el variabila, constanta, tip definit de utilizator, enumerare,
procedura, functie, obiect, metoda, proprietate, control,
forma modul sau chiar proiectul însusi. Un proiect Visual Basic poate
sa contina maxim 32000 identificatori. Un identificator trebuie
sa respecte uratoarele reguli:
- sa înceapa cu o litera;
- sa nu contina în interior unul din caracterele: . %!$&#@;
- numele variabilelor nu pot fi mai lungi de 255 caractere iar cele ale
controalelor, modulelor, formelor si claselor nu pot fi mai lungi de 40
caractere;
- nu trebuie sa existe doi identificatori identici cu acelasi scop;
- exista o serie de identificatori standard, definiti de Visual
Basic. O redeclarare a lor va duce la nerecunoasterea sensurilor
initiale;
- nu pot fi identificatori cuvintele cheie ale limbajului. Cuvintele cheie sunt
identificatori cu semnificatie fixata, care nu pot fi folositi
în alt context decât cel precizat de semantica limbajului. Exemple: Dim, Private, Public, Array , For , Next, If,
Then ,Else, End etc..
Pentru a face codul cât mai lizibil identificatorii folositi ar trebui
sa descrie rolul lor în aplicatie. De aceea multi programatori
folosesc prefixe în definirea identificatorilor care indica tipul de date
referit si scopul lor.
Comentarii ,separatori,
împartirea liniei
Comentariile sunt siruri de caractere care au în
fata caracterul (`). Au rolul de a face textul programului mai
lizibil.
Exemple:
´ Aici începe programul
Dim iVirsta as Integer ´ Vârsta angajatilor
Dim iGreutatea as Interger ´ Greutatea angajatilor în kilograme
De asemenea puteti utiliza comentariile pentru a determina compilatorul
sa nu mai execute anumite instructiuni (facilitatea este
folosita mai ales în faza de corectare a programului).
În general în Visual
Basic puteti scrie doar o singura declaratie pe o linie.
Totusi, daca doriti, puteti scrie mai multe declaratii
pe mai o singura linie despartindu-le cu ajutorul separatorului
de instructiuni si declaratii care este caracterul (:) .
Exemplu:
Dim a as Integer : a=10
De asemenea pentru a spori lizibilitatea programelor
dumneavoastra, daca o declaratie este prea mare o puteti
scrie pe mai multe linii. Acest lucru se realizeaza folosind caracterul
continuator de linie ( _)( un spatiu urmat de o linie jos).
Exemplu:
Private Declare Function GetVolumeInformation Lib _
"kernel32" Alias "GetVolumeInformationA" _
(ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, lpFileSystemNameBuffer, _
ByVal nFileSystemNameSize As Long) As Boolean
Private Declare Function GetDriveType Lib "kernel32" Alias _
"GetDriveTypeA" (ByVal lpRootPathName As String) As Integer
Tipuri de date
Tipul unei date defineste multimea de valori pe
care le poate contine o variabila si multimea de
operatii care pot fi efectuate cu elementele multimii respective. În functie de tipul
de data pe care-l stocheaza o anumita variabila
compilatorul aloca o zona mai mare sau mai mica de memorie
pentru a fi reprezentata.
Cu fiecare tip de data sunt permise o serie de
operatii. Astfel:
- operatiile care se pot face cu valorile unui tip întreg sunt: adunarea
(+);scaderea(-); înmultirea(*);împartirea întreaga (\)
a \ b returneaza câtul împartirii lui a cu b;
împartirea reala(/); restul împartirii întregi (mod);
ridicarea la putere (^) de asemenea sunt permise operatiile
relationale: mai mic sau egal (<=); mai mic (<); egal (=); mai
mare(>); mai mare sau egal (>=);Rezultatul unor astfel de operatii
este de tip boolean, având valorile True sau False.
- operatiile care se pot face cu valorile unui tip real sunt: adunarea
(+);scaderea(-); înmultirea(*); împartirea(/); ridicarea la
putere (^); sunt permise operatiile relationale prezentate la
tipurile întregi;
- sirurile de caractere suporta operatia de concatenarea (&)
si operatiile de comparatie (<,<=,=,>=,>). Prin
concatenare doua sau mai multe siruri de caractere pot fi lipite
formând un singur sir de caractere. Cu ajutorul operatiilor de
comparatie se stabileste pozitia alfabetica a
sirurilor de caractere;
- valorile logice, booleane (True si False) suporta urmatoarele
operatii logice: negarea logica (Not); si logic (And); sau logic
(Or); sau exclusiv logic (Xor); echivalenta logica (Eqv);
implicatia logica (Imp);
- tipurile de data de tip obiect suporta o singura operatie
- cea de comparatie (Is). Cu ajutorul acestei operatii se
verifica daca doua variabile de tip obiect refera
acelasi obict sau nu.
Constante
Adesea veti întâlni în programele dumneavoastra
valori constante ce se repeta de nenumarate ori. Astfel, pentru a
spori lizibilitatea programului si pentru a nu fi nevoiti sa
faceti numeroase modificari în caz ca o valoare des
întâlnita trebuie modificata, puteti folosi
constantele. O definitie de constanta introduce un identificator ca
sinonim al unei valori constante.
În Visual Basic exista doua tipuri de constante:
- intrinseci sau definite de sistem . Visual Basic pune la dispozitie o serie
întreaga de constante pentru culori, taste, figuri etc.
- simbolice sau definite de utilizator. Puteti defini propriile
dumneavoastra constante cu ajutorul cuvântului cheie Const astfel:
[Public|Private] Const NumeConstanta[As type] = expresie
Exemple:
Const PI = 3.14159265358979
Const NR_ZILE_LUCRATORE = 22
Const ZI_DE_NASTERE = #02.04.1981#
Const NUME_DE_COD = ˝sacalul˝
Variabile
Pentru a realiza lucruri folositoare, programele trebuie
sa stocheze informatia, cum ar fi un document pe care l editati
în mai multe sesiuni de lucru cu calculatorul, într-un fisier si în
memoria interna. Dupa cum stiti, de fiecare data când
rulati un program, sistemul de operare încarca instructiunile programului
în memoria calculatorului. De exemplu sa presupunemca aveti un
program care tipareste un document. De fiecare data când
rulati programul, el va afisa un mesaj care va cere numele
fisierului si numarul de copii pe care doriti sa-l tipariti.
Când scrieti aceste informatii, programul pastreaza
valorile pe care le-ati introdus în anumite locatii de memorie.
Pentru a ajuta programul sa gaseasca locatia de memorie
unde au fost plasate datele , fiecare locatie de memorie are o adresa
unica, cum ar fi locatia 0, 1,2 ,3 si asa mai departe.
Deoarece pot fi milioane de asemenea adrese, tinerea evidentei
fiecarei locatii poate deveni foarte dificila. Pentru a simplifica stocarea informatiei
programele definesc variabile. Acestea sunt niste nume pe care programul
le asociaza cu anumite locatii din memorie. Asa cum indica
si cuvântul variabila, valoarea pe care programul o
pastreaza în aceste locatii se poate modifica în cursul
executiei programului. Variabile poate sa stocheze valori diferite în
momente diferite. O variabila se caracterizeaza prin doua
elemente: numele variabilei care este un identificator cu ajutorul caruia
putem sa referim variabila pe parcursul programului si tipul
variabilei care determina ce tip de data poate stoca variabila. În functie de tipul
variabilei compilatorul aloca o zona mai mica sau mai mare de
memorie pentru variabila respectiva.
Din punct de vedere al utilizarii variabilelor Visual
Basic poate fi considerat un limbaj cu 2 feluri de variabile: cu tip si
fara tip. Folosirea variantelor fara tip de date (prin
utilizarea tipului implici Variant) a devenit deosebit de importanta.
Tipul Variant contine nu numai variabila dar si informatii
despre variabila.
A declara o variabila însemna sa-i spui programului înainte
despre ea astfel încât programul sa stie câta memorie sa-i
aloce si unde. Declararea unei variabile se face astfel:
[Public| Private] Dim NumeVariabila as TipVaribila
Public, Private, Dim sunt cuvinte specifice limbajului Visual Basic care îi
spun ca vreti sa declarati o variabila;
NumeVaribila este identificatorul variabilei;
As este un cuvânt cheie care îi spune programului ca doriti sa
declarati tipul variabilei
TipVariabila este numele unui tip de date din cele pe care le accepta
Visual Basic
Exemple:
Dim iLungime as Integer ´ defineste variabila i de tip Integer
Dim dtZiSalar as Date ´ defineste variabila dtZiSalar de tip Date
Private sNume as String ´ defineste variabila sNume de tip String
Public lstListaPreturi as ListBox ´ defineste variabila lstListaPreturi ce
va contine o ´ referinta catre un obiect de tip ListBox
O caracteristica deosebit de importanta a
variabilelor este domeniul de valabilitate si durata de
existenta.
Astfel exista variabile locale la nivelul unei proceduri. Aceste variabile
se declara in interiorul procedurii cu ajutorul cuvântului cheie Dim .Ele
exista atâta timp cât se executa procedura în care au fost declarate.
De asemenea ele pot fi utilizate numai în cadrul acelei proceduri neavând nici
o semnificatie în alta parte a programului. Au un domeniu de
valabilitate doar la nivelul proceduri si au o durata de
viata temporara. Este recomandat sa folositi Dim ,doar
pentru declararea acestui tip de variabile chiar daca Visual Basic va
va permit sa-l folositi si în alte contexte.
Un alt tip de variabile sunt cele cu domeniu de vizibilitate
la nivelul unui modul. Aceste variabile pot fi folosite oriunde în interiorul
modulului în care au fost declarate. Exista atâta timp cât este folosit
modulul respectiv. Este recomandabil ca declararea lor sa se faca cu
ajutorul cuvântului cheie Private în loc de Dim. Rezistati tentatiei
de a folosi Dim chiar daca Visual Basic accepta acest lucru.
Un al treile tip de variabile sunt cele globale la nivelul întregului program.
Acestea sunt pot fi folosite oriunde în program, au un domeniu de valabilitate
global Exista atâta timp cât se executa programul. Declarati
aceste variabile folosind cuvântul cheie Public.
Un alt tip de variabile sunt cele statice. Aceste pot avea un domeniu de
valabilitate locala sau la nivelul unei proceduri dar o durata de
existenta permanenta. Declararea se face cu ajutorul cuvântului
cheie Static. Spre exemplu puteti sa definiti o variabila
statica la nivelul unei proceduri. E va fi vizibila doar la nivelul
acelei proceduri dar îsi va pastra valoarea si dupa ce
procedura îsi va termina executia. Daca procedura va fi din nou
apelata variabila statica nu va fi initializata automat de
Visual Basic, lucru ce se întâmpla cu variabilele care nu sunt statice, ci
va avea valoare pe care a avut-o la ultima ei folosire.
Variabilele locale la nivelul unui modul sau publice se declara în
sectiune de declaratii a modulului (Declarations).
Declararea variabilelor se poate face în doua moduri : implicit sau
explicit.
În modul implicit o variabila este considerata declarata la
prima ei folosire. Nu este necesara
o declarare prealabila cu ajutorul cuvintelor cheie Dim, Private,Public.
În mod implicit Visual Basic le declara de tip Variant pe toate.
Declararea explicita a variabilelor presupune ca înainte sa
folositi o variabila sa o declarati anterior cu ajutorul
unuia dintre cuvintele cheie Dim, Private, Public. Puteti scrie la
începutul modului optiunea Option Explicit sau puteti cere mediului
de programare sa faca acest lucru automat selectând din meniul
Tool->Options->Editor optiunea Require Variable Declaration si
in acest caz Visual Basic va va atentiona daca folositi o
variabila pe care nu ati declarat-o anterior. Este deosebit de
folositoare aceasta optiune (si este recomandat sa fie
folosita) pentru a evita greselile legate de tiparirea numelor variabilelor.
Una dintre cele mai periculoase erori întâlnite la declararea unei variabile
este urmatoarea:
Dim a, b,c as Integer . Credeti ca ati definit trei variabile
a,b,c de tip Integer dar de fapt numai c este de tip Integer celelalte fiind în
mod implicit de tip Variant .Corect este
Dim a as Integer , b as Integer, c as Integer.
Stocarea
datelor în variabile se face cu ajutorul instructiuni de atribuire.
Exemple:
iNotaMaxima = 10 - variabila a va stoca valoarea 10;
sNume = "Popescu" - variabila va stoca sirul de caractere
˝Popescu˝
dtDataNasterii=#01.05.1980# - variabila va stoca data 01.05.1980
Semnul egal din aceste exemple este operator de atribuire
si nu operator de egalitate. În versiunile mai vechi de Basic la
operatia de atribuire se folosea si cuvântul cheie Let pentru a se
face distinctie între operatia de atribuire si cea de egalitate
(majoritatea limbajelor fac aceasta distinctie folosind operatori
diferiti).
Când creati o variabila Visual Basic îi atribuie în mod implici o
valoare in functie de tipul de variabilei .
O alta problema deosebita în
legatura cu variabilele o constituie conversia tipurilor. Vor exista
situatii în care veti dori sa atribuiti unei variabile de
un anumit tip o valoare de alt tip
lucru care nu este posibil. De aceea va trebui sa faceti o conversie
a valori pe care doriti sa o atribuiti la tipul variabilei. În
numeroase cazuri Visual Basic executa în mod automat aceste conversii de
date însa este recomandat sa realizati dumneavoastra aceste
conversii utilizând functiile de conventie.
|