Sunteți pe pagina 1din 4

Ce ºtie Visual Basic (I)

C
ei mai mulþi dintre noi, când se complicat de fãcut? Sunteþi profesor ºi tre-
gândesc la cuvântul programare, buie sã calculaþi niºte medii? Aveþi de fãcut
se gândesc automat la un pro- un program care sã vã gestioneze baza de
gramator plictisit, stând în faþa unui calcu- date (medic, lucru în secretariat, vânzã-
lator ºi bãtând pagini întregi de coduri. tor...)? Vã intereseazã electrotehnica ºi
Apoi ne imaginãm urmãtoarea scenã, în doriþi un dispozitiv care – ataºat portului
care bietul om testeazã programul pe care de imprimantã – sã coordoneze anumite
îl scrie ore întregi ºi îi apare pe ecran o aparate? Vã pasioneazã grafica 2D sau 3D
eroare de execuþie, eroare pe care nu ºi nu ºtiþi unde sã faceþi primii paºi pentru
reuºeºte sã o remedieze decât dupã alte a pãtrunde în misterele ei din lumea cal-
ore de lucru, ºi tot aºa. De fapt, cei mai culatorului? Vã doriþi sã creaþi un program
mulþi dintre noi gãsesc conceptului de care sã încripteze (sã codifice) anumite
figura 2: Exemplu de cod al unui buton "Ieºire" ºi a
programare o grãmadã de etichete cum ar texte? Cu puþin noroc, rãbdare ºi ingenio- unei casete text
fi: "complicat", "inaccesibil", "obositor", zitate, Visual Basic va rãspunde acestor
"greu de învãþat" ºi cea mai grea etichetã, cerinþe. În Windows, fiecare miºcare a mouse-ului,
"inutil". Este un fapt real cã pânã ºi în ºco- Aºadar, în scrierea unui program în fiecare tastã apãsatã reprezintã câte un
lile de informaticã este predatã progra- Visual Basic cel mai "complicat" lucru este eveniment. Tot ceea ce are de fãcut un
marea utilizând programe obositoare ºi a sã stabiliþi ce vreþi sã facã programul ºi programator este sã se hotãrascã ce
cãror duratã de învãþare se întinde pe mai cum vreþi sã arate. Acest mediu de progra- urmãri au acþiunile utilizatorului în
mulþi ani. mare este foarte prietenos ºi se bazeazã pe perimetrul programului lui. Adicã, spre
Sã fim serioºi! Visual Basic (pe scurt graficã. Ce înseamnã însã aceasta? exemplu, dacã desenãm un buton ºi
VB) este unul dintre cele mai simple lim- Programarea graficã rezidã din faptul dorim sã serveascã la închiderea progra-
8 baje de programare. Dacã sunteþi în stare
sã deschideþi un calculator, sã bateþi trei
cã programatorul îºi începe proiectul prin
schiþarea ferestrelor (forms), butoanelor
mului, atunci o sã-i modificãm eticheta
(textul scris pe buton) în "Ieºire", iar în fe-
cuvinte la tastaturã, dacã ºtiþi puþin limba (buttons), casetelor de text (text boxes), eti- reastra de cod asociem evenimentului de
englezã, vã face plãcere sã desenaþi ºi aveþi chetelor (labels) ºi celorlalte elemente (din apãsare a butonului codul care desem-
puþinã imaginaþie, atunci puteþi fi sigur cã toolbox), apoi seteazã opþiunile dintr-o neazã închiderea programului (în cazul
aþi gãsit un nou prieten în calculatorul casetã specialã (Properties Window), aºa nostru cuvântul "END") (figura 2).
dumneavoastrã. cum veþi vedea mai târziu, ºi abia apoi Atunci când vrem sã începem un nou
ªi, din moment ce este pe mãsura cre- începe scrierea codului propriu-zis proiect în Visual Basic, avem de ales între
ativitãþii dumneavoastrã, puteþi sã fiþi si- (figura 1). Codul scris este bazat pe eveni- mai multe proiecte predefinite, pe care le
guri cã este ºi folositor. Aveþi un calcul mente (events) ºi grupate în subprograme. putem dezvolta. Primul ºi cel mai simplu
este "Standard EXE" în care VB deschide
un form (fereastrã) gol, de o anumitã
dimensiune, cãruia îi putem modifica pro-
prietãþile. Apoi, avem la dispoziþie unel-
tele-standard din Toolbox, deºi existã ºi
proiecte mai complexe în care uneltele pri-
mare nu sunt de-ajuns, deci acest proiect
este doar pentru aplicaþiile simple
(figura 3).
De aici, totul se desfãºoarã ca o joacã de
copii. Desenaþi elementele de dimensi-

figura 1: Aºa aratã VB în timp ce lucrãm în el (imagine fullscreen) figura 3: Toolbox cu componentele primare
cu nimic acþiunilor utilizatorului. Acest care va apãrea într-un numãr viitor),
lucru este foarte important, dar simplu de poate sã lucreze cu anumite funcþii ale
efectuat. Pe lângã partea graficã a oricãrui Windows-ului, de la dll-uri (importante ca
program existã ºi partea utilitarã pe care ºi gdi32, rundll, kernel32, dll fiind pres-
nu o "vizualizãm", dar, de fapt, aceasta curtarea de la dynamic link library ºi
reprezintã menirea programului ºi ºtim cã reprezintã fiºiere tip bazã de date pentru
este funcþionalã atunci când programul sistem) pânã la componente ale pro-
reacþioneazã la evenimente. gramelor instalate (Word, Windows
Din acest punct de vedere, deºi este Media Player, Flash etc.), sã converteascã
limitat faþã de alte limbaje (C++, Turbo dintr-un tip de date într-altul, adicã existã
Pascal, Java), care pot intra mult mai locuri în care programul lucreazã doar cu
adânc în sistemul de operare (unele sunt numere, calcule ºi locuri în care ºirurile de
capabile sã lucreze chiar ºi sub DOS, lucru caractere sunt vitale, dacã ne gândim la
pentru care la Visual Basic ne trebuie o text-boxes, iar noi trebuie sã le convertim.
versiune specialã), Visual Basic oferã o De exemplu, nu putem pune într-o
gamã largã de posibilitãþi ºi de funcþii care etichetã rezultatul unui calcul, pur ºi sim-
sunt foarte practice ºi satisfac dorinþele plu, ci trebuie sã folosim formula Str (nu-
multor programatori, de la începãtori mãr), pentru a converti numãrul într-un
pânã la avansaþi ºi experþi în programare. ºir de caractere. Dar asupra variabilelor ºi
Sã vedem mai exact care sunt posibilitãþile constantelor ºi conversiei dintre ele ne
unui program scris în Visual Basic. Toþi vom concentra mai târziu). De altfel, vom
operatorii ºi funcþiile posibile se gãsesc în studia interacþiunea codului Visual Basic
Object Browser (un fel de colecþie a tutu- cu diferite fiºiere de sistem, prin inter-
ror comenzilor care pot fi scrise în codul mediul unui program (WinApi), care ne
programului ºi care sunt recunoscute de ajutã sã selectãm tipul funcþiilor de care
acesta) din meniul View (shortcut: F2, avem nevoie ºi care face din VB un mediu
figura 5). Aºadar, un program scris în de programare la fel de util precum C++
Visual Basic poate: sã facã toate calculele ºi pe care îl întrece însã prin simplitate.
matematice (de la adunãri ºi scãderi la Fereastra Code (adicã locul în care se
ridicãri la putere ºi calcule trigonometri- scrie codul) se deschide la clic dublu
ce), sã lucreze cu ºiruri de caractere (de la
modificarea textului de pe o etichetã la
asupra oricãrui obiect din form (inclusiv a
form-ului însuºi) a cãrui acþiune vrem sã o
9
înlocuirea anumitor caractere dintr-un ºir scriem, sã o modificãm ori sã o ºtergem.
ºi limitarea lungimii acestuia), sã preia Dacã nu s-a fãcut nici o referire în codul
figura4: Fereastra Properties informaþii despre calculator, sã lucreze cu programului la acel obiect, atunci VB
unea doritã în spaþiul dorit ºi apoi modifi- fiºiere text (sã le creeze, sã le modifice ori creeazã automat o nouã procedurã-eveni-
caþi opþiunile lor, astfel încât sã core- sã le ºteargã), sã lucreze cu baze de date ment goalã, a cãrei activare în timpul exe-
spundã utilitãþii programului ºi gusturilor (asupra acestui aspect ne vom concentra cuþiei este oferitã de acþiunea implicitã
dumneavoastrã (sau ale viitorilor utiliza- în cea de-a doua parte a acestui tutorial, care poate fi exercitatã asupra obiectului.
tori). Observãm cã fereastra Proprieties
(shortcut: F4) are o casetã rulantã din care
selectãm obiectul ale cãrui proprietãþi
vrem sã le modificãm, lista proprietãþilor
ºi la final o casetã care ne este de foarte
mare ajutor, descriind fiecare element din
listã (figura 4).
Una dintre cele mai importante propri-
etãþi care nu lipsesc de la nici un element
este Name ºi reprezintã numele obiectului
în forma în care va fi apelat în timpul exe-
cuþiei. O altã proprietate importantã este
la obiectele care afiºeazã text (labels, but-
tons) ºi poartã numele de Caption,
reprezentând textul care va fi afiºat de ele
în interiorul form-ului. Este foarte impor-
tant de reþinut cã proprietatea Name
reprezintã apelativul obiectului în codul
de execuþie ºi nu este totuna cu Caption.
Cu toate acestea, oricât de frumos am
desena în VB ºi oricâte elemente decora-
tive i-am adãuga form-ului nostru (se pot
pune din Toolbox chiar ºi forme geometri-
ce de diferite culori), am fãcut toate aces-
tea degeaba dacã programul nu rãspunde figura 5: Fereastra Object Browser ºi Help-uul aferent unui elemnet din listã (imagine fullscreen)
uºoarã celor care vor sã împartã codul în
mai multe pãrþi. Aceste proceduri pot fi
create de o utilitate a programului (din
meniul Tools>Add Procedure) ºi sunt
"chemate" (adicã rulate) din celelalte pro-
ceduri cu ajutorul sintaxei: "Call" însoþit de
numele procedurii (figura 7).
Aºa cum aþi observat din figura 2, orice
procedurã este delimitatã în fereastra
Code de formula de începere (în cazul
nostru sintaxa "Private Sub" urmatã de
numele procedurii sau al obiectului însoþit
de evenimentul pe care îl declanºeazã ºi
douã paranteze care au, uneori, rolul de a
adãposti anumite informaþii speciale,
cunoscute sub numele de parametri), apoi
un spaþiu în care sunt scrise comenzile,
care poate sã aibã de la 1 la un numãr
nelimitat de rânduri, ºi apoi o formulã de
încheiere care atrage atenþia programului
cã acolo se terminã execuþia acestuia (de
obicei "End Sub") ºi îi dã voie sã treacã în
starea de pasivitate, în aºteptarea unui alt
figura 6: Un obiect care rãspunde la mai multe evenimente ºi exemplu de comentarii set de comenzi sau date de la utilizator.
Un lucru foarte util în cod, dacã nu
Cu siguranþã, dacã deschidem fereastra despre cele mai uzuale: subprogramele vrem sã ne pierdem minþile programând,
Code pentru un buton, evenimentul im- normale. Ele încep întotdeauna printr-un este folosirea comentariilor. Atunci când
plicit pe care îl va declanºa în timpul exe- atribut care le defineºte tipul, existând ast- lucrãm la un program mai lung, pe o
cuþiei programului va fi un simplu clic, fel procedurile private (Private Sub) ºi cele perioadã mai lungã de timp, se poate sã
10 dar, dacã avem de-a face cu o casetã text,
s-ar putea sã rãmânem miraþi, deoarece
publice (Public Sub), dar ne vom concen-
tra mai târziu atenþia asupra subpro-
uitãm ideile anterioare. Adicã, având 20 de
subprograme care fac trimitere unele la
evenimentul implicit este "Change" ºi gramelor publice. altele, este destul de greu sã mai þinem
desemneazã modificarea textului din ea. Pe lângã procedurile-eveniment acce- minte ce fãcea fiecare. Atunci vine sal-
Dacã, totuºi, am mai lucrat cu acel obiect sate de utilizator prin acþiunea mouse-ului varea. Comentariile sunt niºte porþiuni de
înainte, atunci la fereastra Code se va ºi a tastaturii, existã ºi un alt set de proce- text introduse pe lângã codul propriu-zis,
focaliza imediat pe porþiunea din cod care duri care nu pot fi accesate decât din inte- care însã nu sunt luate în considerare de
conþine ºi obiectul (figura 2). riorul programului ºi care pot conþine alte program. Ele sunt marcate cu apostrof (')
Totuºi, s-ar putea sã dorim ca ele- comenzi, cu rolul de a face viaþa mai pentru comentarii care sunt puse în
mentele programului nostru sã fie acþio-
nate ºi de altceva decât evenimentele im-
plicite. Spre exemplu, atunci când mouse-
ul trece peste un buton, sã fie executatã o
acþiune (de exemplu schimbarea culorii
acestuia) sau ca tot programul sã se
opreascã la apãsarea literei "S". Aºa ceva
nu este câtuºi de puþin o problemã,
deoarece avem posibilitatea sã gãsim toate
acþiunile posibile asupra unui obiect sau
chiar asupra form-ului în cea de-a doua
casetã de derulare. Printre ele se pot
numãra: dublul clic, apãsarea unei anu-
mite taste în timp ce este selectat obiectul,
trecerea mouse-ului peste un buton, fãrã
însã a-l apãsa, încercarea de a muta un
obiect (drag & drop) ºi multe altele. Un
obiect poate rãspunde la mai multe ac-
þiuni, fiecare dintre ele necesitã însã o altã
procedurã-eveniment (figura 6).
Toatã programarea în fereastra Code
este structuratã pe subprograme care sunt
de patru categorii: subprogramele nor-
male, funcþiile, evenimentele ºi propri-
figura 7: Exemplu de interacþiune între proceduri, folosind versiunea limitatã a lui VB din Office
etãþile. Deocamdatã, vom discuta însã
figura 8A: Mesaj de explicare a erorii, scris de programator
acelaºi rând cu codul ºi cu "Rem" pentru formate în puncte de legãturã cu alte figura 8B: Mesaj de eroare dat de program
comentariile care ocupã un rând întreg rubrici) dintre care cel mai folositor este
(figura 6). cel pe care scrie "Example". Apãsând pe acestea, am conceput programul ca atunci
Deºi au fost scrise zeci de cãrþi despre acesta se va deschide o fereastrã cu un când valoarea uneia dintre note este 0 sã
programarea în VB – acest fapt dând exemplu de cod în care ar putea fi folositã refuze, pur ºi simplu, calculul. Cu sigu-
impresia cã ar fi complicat – el rãmâne un variabila ºi conþine ºi comentariile afer- ranþã programul nu va funcþiona corect
mediu foarte uºor de utilizat ºi datoritã ente, pentru a ne ajuta sã folosim în codul dacã utilizatorul nu îi dã datele de care are
Help-ului pe care îl posedã. Orice fereastrã nostru (de tipul: "'modificaþi variabila nevoie, dar ceva ca în figura 8A (mesaj
pe care o afiºeazã Visual Basic în timpul aceasta cu aceea pe care doriþi dumnea- scris de mine) este mai plãcut decât un
programãrii are câte un buton care ne voastrã sã o folosiþi în program") (figura 5). mesaj ca în 8B (mesaj de eroare dat de pro-
trimite exact la rubrica respectivã din Help. Problemele cu care se confruntã cel mai gram). În ciuda acestora, nu putem ºti ce
În plus, existã o mulþime de cazuri în care ades programatorii care folosesc VB sunt se va întâmpla cu programul conceput de
ne-am dori sã ºtim cum se folosesc anu- erorile. Erorile sunt în Visual Basic de 3 noi pânã când nu îl rulãm pur ºi simplu ºi
mite funcþii pe care le gãsim în Object tipuri: erori de sintaxã, erori care apar în tim- îl "chinuim" în toate modurile posibile,
Browser. Nimic mai simplu: selectãm din pul execuþiei programului ºi erori de logicã. pentru a-l pune la încercare.
rubricã elementul despre care vrem sã Primele sunt cele mai frecvente ºi sunt cel Erorile de logicã sunt cel mai greu de
aflãm mai multe informaþii, apãsãm F1, mai uºor de corectat. Dacã în loc de "End detectat ºi cele mai enervante. Scriem în
care deschide o fereastrã Help exact la acel Sub" scriem "End Subt", cu siguranþã cã cod: A=B2+sin (B/2). Pe B îl scoatem din-
cuvânt-cheie. De aici, dupã ce aflãm mai VB înainte sã trecem la urmãtorul rând de tr-o casetã Text. Apoi ajungem la ultimul
multe ºi încercãm sã le punem în aplicare cod ne va atrage atenþia colorând în roºu punct în care o etichetã trebuie sã ne
pentru codul nostru, se poate sã avem linia pe care a fost gãsitã eroarea ºi va afiºeze valoarea variabilei H ºi, în loc sã
parte de surpriza de a ni se semnala un fel
de eroare necunoscutã. Acum avem douã
insera un mesaj ajutãtor. Cel de-al doilea
tip se poate observa doar atunci când
arate ce trebuie, rãmâne înþepenit la 0. Nu
ºtim ce sã facem, unde am greºit, ºi cu
11
posibilitãþi. Prima este sã apãsãm butonul porniþi efectiv programul. Sã ne gândim la toate acestea, eroarea existã.
Help al ferestrei de eroare, care automat situaþia cu programul de calculare a Atunci VB ne pune la dispoziþie 3
ne duce la o rubricã ce ne va explica noima mediei pe care l-am pregãtit ca exemplu. metode de exterminare a erorilor (debug):
mesajului de eroare ºi ce am greºit în cod. Ce se întâmplã însã dacã un user, în loc sã prima este execuþia programului pas cu
Dacã nici acest lucru nu ne ajutã sã scrie în caseta cu media de la matematicã pas ºi urmãrirea valorilor (Watch), cea de-
rezolvãm problema, atunci, în loc sã "8", scrie "opt". Cu siguranþã, formula care a doua este adãugarea în cod a unor
renunþãm la ideea de a folosi VB, mai bine are rol de a scoate numerele din casetã nu puncte în care programul ia "pauze de
am acorda un pic mai multã atenþie va gãsi nici unul, aºa cã va returna (va execuþie" (Breakpoints), timp în care
rubricii din Help a cuvântului pe care l-am memora ºi va trimite mai departe, la restul putem verifica valorile iar cea de-a treia
cãutat anterior. Se poate observa cã exact procedurilor) valoarea 0, ºi sã fim serioºi, este fereastra "Imediate", care ne permite
sub el existã niºte link-uri (cuvinte trans- cine are nota 0 la matematicã? Cu toate sã interacþionãm cu programul, pentru a
afla anumite variabile ºi a modifica anu-
mite valori, pentru a vedea unde e situatã
eroarea (figura 7, 9).

***
Despre vânarea erorilor (cunoscute ºi
sub numele de BUG) ºi misterele vari-
abilelor vom discuta în numãrul viitor.
Pentru cei care îºi doresc atât de mult sã
experimenteze o versiune mai slabã a pro-
gramului, existã în Word un Toolbar care
poartã numele de Visual Basic ºi care ne
poate duce spre o versiune simplificatã,
care însã ne poate fi de ajutor dacã vrem
sã ne facem o idee, cât de cât, despre acest
mod de programare (figura 7).

„ MIRCEA S. DORNEANU
figura 9: Metode de corectare a erorilor din programul scris

S-ar putea să vă placă și