VB 1
VB 1
8. Control ToolBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
Not-iuni introductive n limbajele de programare
! Limbaj de programare;
! Limbaj mas- ina7 ;
! Compilator;
! Interpretor.
2
Istoria BASIC-ului
! Dezvoltat de J. G. Kemeny s- i Thomas E. Kurz la
Colegiul Dartmouth n 1963;
! Scris pentru a-i nva7 t- a student- i sa7 programeze
us- or s- i repede;
! De la BASIC la Visual Basic;
! Avantaje s- i dezavantaje VB.
! Unde se foloses- te.
2. Istoria BASIC-ului
J. G. Kemeny, La nceput a fost doar BASIC ...
T. E. Kurz Inventat de John Kemeny s- i Thomas Kurz de la Colegiul Darmouth din
California. Scris pentru a-i nva7 -t a us-or pe student-i fundamentele informaticii
s-i a programa7 rii calculatoarelor. Primul BASIC a rulat pe un IBM 704 la
data de 1 mai 1964.
n februarie 1975, Paul Allen s-i Bill Gates (fondatorii Microsoft) au scris
primul BASIC pe Altair (avea 4K s-i permitea scrierea a 50 de linii de cod).
Microsoft a continuat sa7 dezvolte limbajul ...
Pna7 la versiunea 5, codul generat de Visual Basic era P-cod (un cod
intermediar ntre BASIC s-i limbajul mas-ina7 care se interpreta n vederea
execut-iei). Din aces motiv VB avea reputat-ia unui limbaj ncet. ncepnd cu
VB5 Microsoft a ncorporat un compilator n VB pentru a putea crea direct
programe executabile n limbaj mas-ina7 (dar acestea au nevoie de Visual
Basic runtime pentru a putea fi rulate independent de mediul VB). Viteza de
execut-ie a programelor a crescut din acest motiv de peste 10 ori.
3
Ce este Visual Basic?
Forms (Formulare) + Controls (Controale) Code (Cod Basic)
4
Pro -s i contra VB
Avantaje Dezavanataje
4. Pro s- i contra VB
Avantaje Punctul forte al VB este abilitatea dezvolta7 rii rapide a aplicat-iilor. Datorita7
controalelor predefinite s-i cu ajutorul formularelor s-i ca urmare a consistent-ei
secvent-elor de programat, se definesc s-abloane pe baza ca7 rora se pot construi,
testa s-i genera kituri de aplicat-ii.
Codul se poate nt-elege us-or, motiv pentru care exista7 o baza7 extinsa7 de resurse
VB pentru dezvoltarea, ntret-inerea s-i generarea kiturilor de aplicat-ii.
Limbajul este bazat pe obiecte s-i permite crearea de componente pentru alte
aplicat-ii. Ca urmare apare eficientizarea dezvolta7 rii datorita7 reutiliza7 rii codului
componentelor.
Dezavantaje Des-i VB poate construi o aplicat-ie foarte repede, aceasta nu este foarte
eficienta7 n termenii execut-iei codului, pentru aceasta limbajele C sau C++ snt
recunoscute ca fiind cele mai bune.
Codul VB poate sa7 fie slab structurat ca urmare a lipsei unor constructii de cod
moderne s-i datorita7 pa7 stra7 rii construct-iilor de cod nestructurat de la
nceputurile BASIC-ului. Ca urmare, ntret-inerea programelor vechi poate sa7
fie dificila7 .
5
VB n aplicat-ii de sine sta7ta7toare
! Aplicat- ii de calcul:
# ipoteca7 , asigura7 ri, vnza7 ri, inginerie;
# nregistrarea vnza7 rilor, solut- ii mobile;
! Utilitare de PC:
# gestiunea de fis- iere;
# gestiunea de conturi.
! Colectarea de date:
# interfet- e pentru bazele de date;
# aplicat- ii de tipul jurnal de conectare.
! Integrare cu aplicat- iile:
# Microsoft Office (Word, Excel, Access,
PowerPoint, Outlook, ...);
# CATIA, AutoCAD, SolidWorks etc.
6
multe spat-ii de prelucrare (n cazurile obis-nuite, pe mai mult de un singur calculator). n
figura anterioara7 s-a reprezentat un grup de calculatoare client, conectate ntr-o ret-ea, ce au
interfet-ele scrise n VB (front end) prin care se conecteaza7 direct la datele unui sistem de
gestiune a bazelor de date n scopul manipula7 rii (inserare, actualizare, s-tergere) lor. Fiecare
program client are o linie directa7 cu datele att timp ct poate stabili o conexiune cu server-ul.
Solut-iile 2-Tier au nsa7 o problema7 mare, ele nu snt scalabile din punctul de vedere al
cres-terii numa7 rului de utilizatori. Conexiunile la bazele de date snt resurse costisitoare motiv
pentru care, deseori, trebuie limitate. Ca urmare a limita7 rilor utilizatorii nu se mai pot conecta
n orice moment sau sistemul ajunge sa7 fie saturat de cereri s-i performant-ele scad dramatic.
De asemenea, aplicat-iile client pot ncorpora port-iuni de cod specifice afacerii programate.
Daca7 aceasta (logica aplicat-iei) se modifica7 trebuie modificate toate aplicat-iile client (care
pot ajunge la cteva sute), administrarea devenind foarte complicata7 n acest caz.
Ca urmare a problemelor de scalabilitate ale aplicat-iilor 2-Tier s-a dezvoltat modelul 3-Tier.
n acest model VB poate crea programele care -t in de GUI, adica7 va asigura serviciile de
prezentare. Aceste programe nu acceseaza7 sistemul de gestiune a bazelor de date direct ci
folosesc componente externe care realizeaza7 interact-iunea cu datele.
Componentele snt cod pur, nu au elemente vizuale s-i se folosesc pentru implementarea
regulilor de logica7 specifice afacerii programate (business logic). Din punct de vedere tehnic
componenta este stocata7 pe nivelul numit "Business Server" (cte denumiri alternetive snt
Middle Tier, Second Tier), iar VB poate fi folosit pentru crearea acestor componente. n mod
frecvent, aceste componente snt stocate pe unul sau mai multe business server-e pentru a
us-ura ntret-inerea s-i distibut-ia noilor versiuni.
7
Tipuri de proiecte VB
! Standard EXE;
! ActiveX EXE;
! ActiveX DLL;
! ActiveX Control.
! Celelalte snt
doar variat- ii
minore ale
primelor 4.
6. Tipuri de proiecte VB
Un program VB este un grup de fis-iere care mpreuna7 permit crearea unei singure aplicat-ii.
Fis-ierele reprezinta7 formulare, clase sau module individuale s-i definesc ce anume va face
aplicat-ia. Oricare fis-ier poate sa7 apart-ina7 la mai multe proiecte astfel, secvent-ele de cod pot
fi refolosite n mai multe aplicat-ii. La pornirea lui VB fereastra de dialog de mai sus prezinta7
tipurile de proiecte care pot fi dezvoltate. Exista7 numai 4 tipuri de proiecte VB:
Toate celelalte proiecte trebuie sa7 creeze un proiect bazat pe unul dintre cele 4 discutate. Snt
proiecte preconfigurate care cont-in formulare predefinite, clase, generatoare etc. s-i, deseori,
referint-e la biblioteci externe de cod care snt necesare pentru ndeplinirea anumitor funct-ii
ale aplicat-iei. Modalitatea de creare a unui s-ablon de proiect va fi predata7 la curs.
8
Proiectul Standard EXE - Formular Implicit
! Aplicat- ie "Vizuala7 "
! Formular implicit - Form1
Proiectul va primi numele implicit de Proiect1 s-i va fi stocat numai n RAM att timp ct nu
este salvat pe disc (File Save Project).
Numele Project1 s-i Form1 snt nerelevante s-i inutile motiv pentru care trebuie schimbate la
nceputul unui proiect nou.
9
Control Toolbox
Sursa controalelor pentru formulare:
! se pun pe formular cu drag'n'drop, sau
! clic dublu de imaginea din Toolbox.
8. Control ToolBox
Controalele snt obiecte care pot fi plasate pe formular s-i ca7 rora li se poate asocia cod.
Controalele au un comportament consistent s-i prin combinarea lor pe suprafat-a formularului
conduc la obt-inerea comportamentului dorit al aplicat-iei.
Toolbox are un numa7 r de controale standard (acestea snt o parte intrinseca7 a lui VB s-i pot
fi folosite direct n orice proiect Standard EXE). Ment-inerea cursorului asupra imaginii unui
control din Toolbox duce la afis-area unui ToolTip (un mesaj care cont-ine numele
controlului). Cteva controale standard din Toolbox snt:
Control Utilizare
Afis-eaza7 un text informativ, static, n proprietatea Caption care descrie
Label
cont-inutul controlului adiacent.
Textbox Cites-te sau afis-eaza7 date de la utilizator prin proprietatea Text .
La apa7 sare, realizeaza7 execut-ia unei secvent-e de cod definite de
Command
utilizator. Textul afis-at e din proprietatea Caption , iar codul se
Button
asociaza7 evenimentului Click .
10
Permite selectarea de ca7 tre utilizator a unei opt-iuni dintr-un grup de
Option
variante. Cel mai des se folosesc proprieta7 -t ile Caption s-i Value ,
Button
eventual evenimentul Click .
Permite selectarea sau deselectarea mai multor variante. Cel mai des se
Checkbox folosesc proprieta7 -t ile Caption s-i Value , eventual evenimentul
Click .
Cont-ine un grup de controale ntre care este lega7 tura7 , tipic, acestea snt
Frame Option Button sau Checkbox. Proprietatea Caption se foloses-te cel
mai des.
Afis-eaza7 o lista7 fixa7 de articole ntre care utilizatorul se poate deplasa n
Listbox
vederea selecta7 rii unui articol sau a mai multora, n funct-ie de seta7 ri.
Combo Box La fel ca s-i Listbox, dar lista poate fi editata7 .
Afis-eaza7 o imagine statica7 pe baza unuia dintre urma7 toarele formate de
Image
imagine: .bmp, .ico, .jpg, .wmf, .gif etc.
La fel cu Image, dar cu posibilitatea ada7 uga7 rii unor elemente de
Picture Box
imagine de tipul linie (Line), cerc (Circle) etc. s-i tipa7 rire (Print).
Line Linie folosita7 pentru separarea unor grupuri de controale.
Un obiect grafic de forma7 predefinita7 . Proprietatea Shape permite
Shape
alegerea formei.
Se foloses-te la generarea unor evenimente la intervale regulate de timp,
de exemplu la un ceas, la afis-area ntrziata7 a unor mesaje. Proprietatea
Timer
Interval defines- te intervalul de timp al genera7 rii evenimetului
Timer . Acestui eveniment i se poate asocia o secvent-a7 de cod.
11
Clic pe butonul drept.
12
9. Fereastra proprieta7 t- ilor
Fereastra proprieta7 -t ilor (Properties Window) este necesara7 la proiectarea formularelor
deoarece permite vizualizarea s-i modificarea proprieta7 -t ilor obiectelor n timpul desfa7 s-ura7 rii
proiecta7 rii.
O proprietate poate fi privita7 ca o valoarea asociata7 unui aspect particular al unui obiect. Ea
reprezinta7 un element de data7 sau o informat-ie care ajuta7 la definirea sta7 rii obiectului
individual. Exista7 proprieta7 -t i care snt comune majorita7 -t ii obiectelor, iar altele care snt
specifice anumitor obiecte. Cteva proprieta7 -t i comune snt: Height , Width , Visible sau
BackColor . Pentru modificarea valorii unei proprieta7 -t i, scriet-i noua valoare dorita7 pe locul
celei vechi sau selectat-i noua valoare dintr-o lista7 , eventual dintr-o fereastra7 de dialog (n
cazul culorilor sau a caracterelor).
O scurta7 descriere a fieca7 rei proprieta7 -t i apare n partea de jos a ferestrei, ma7 rimea ferestrei
se poate modifica ridicnd marginea de sus a ei. Fereastra poate fi nchisa7 prin deselectarea
opt-iunii Description din meniu contextual afis-at la clic pe butonul din dreapta.
Tip: F4 permite deschiderea ferestrei proprieta7 -t ilor, iar F1 afis- eaza7 un mesaj de ajutor
corespunza7 tor proprieta7 -t ii selectate.
13
10. Cteva proprieta7 t- i comune
Numa7 rul proprieta7 -t ilor este mare, cele de baza7 vor fi prezentate acum, unele vor fi descrise,
mai trziu, pe parcursul cursului, iar altele pot fi ga7 site n Help.
Poate cea mai importanta7 proprietate este Name deoarece aceasta permite referirea
controlului din codul aplicat-iei. O metodologie de numire a controalelor va fi prezentata7 dupa7
descrierea principalelor proprieta7 -t i comune din fereastra proprieta7 -t ilor.
Denumire Descriere
Top , Left , Formularele s-i majoritatea controalelor de pe suprafat-a lor au aceste
Heigth , proprieta7 -t i ce specifica7 pozit-ia colt-ului stnga-sus, lungimea s-i na7 lt-imea
Width formularului. Pentru formular ele i definesc pozit-ia n ecran, pentru
controale ele definesc pozit-ia acestora n cadrul formularului (sau
ntr-un control container cum snt Picturebox sau Frame). Unitatea de
ma7 sura7 implicita7 este twip-ul (1440 twips = 1 inch = 2.54 cm).
Caption , Caption se foloses- te pentru textul static (nu poate fi controlat de
Text utilizator) afis-at n bara de titlu a formularului sau scris n Label,
respectiv ala7 turi de Checkbox, Option sau Command Button.
Text se foloses- te pentru editarea sau selectarea cont-inutului unui
control de ca7 tre utilizator ntr-un Textbox, Listbox sau Comb Box.
Font Este o proprietate speciala7 deoarece este un obiect care are la rndul lui
mai multe proprieta7 -t i. Un font (tip de caracter) are proprieta7 -t ile Name ,
Size , Bold , Italic etc. ce pot fi setate individual prin cod sau
printr-o fereastra de dialog speciala7 din fereastra proprieta7 -t ilor.
BackColor , BackColor specifica7 culoarea fondului unui formular sau control.
ForeColor , ForeColor specifica7 culoarea de scriere s- i de tipa7 rire care se va folosi.
BackStyle BackStyle (stilul fondului) este disponibila7 uneori s- i poate fi
transparenta7 caz n care BackColor nu mai are efect. Este utila7 la
Labels.
Visible , Deoarece aceste proprieta7 -t i au valori boleene, ele pot lua numai valorile
Enabled , True sau False.
Locked Visible permite afis- area controlului, daca7 are valoarea False controlul
este invizibil s-i nu se poate interact-iona cu el.
Daca7 Enabled este False utilizatorul vede controlul, dar nu poate
interact-iona cu el (are culoare lui gri speciala7 ).
Daca7 este disponibila7 , Locked permite interact-iunea, dar fa7 ra7
modifica7 ri din partea utilizatorului (de exemplu ntr-un Textbox
informat-ia poate fi selectata7 s-i copiata7 dar nu se poate modifica).
14
Value Value se foloses- te n cazul controalelor Checkbox s- i Option Button
pentru a indica starea de select-ie. Valoarea este True sau False pentru
un Option Button, dar pentru un Checkbox acestea snt Checked,
Unchecked s-i Grayed (indica7 imposibilitatea selecta7 rii de ca7 tre
utilizator; mai este folosita7 s-i pentru afis-area n unor sta7 ri mixte).
Convent-ii de nume
Exista7 convent- ii standard pentru numele de:
! controale;
! componente;
! variabile.
Variabilele corespunza7 toare tipurilor de date standard pot folosi convent-ii de nume care
includ vizibilitatea variabilei (acestea se vor discuta n cursul urma7 tor).
15
Structura unui proiect VB
Este posibil ca unele fis-iere sa7 fie partajate ntre mai multe proiecte. n acest caz apar
conflicte daca7 utilizatori diferit-i ncearca7 sa7 modifice aceleas-i fis-iere. Programe pentru
controlul codului sursa7 pot fi utilizate pentru a preveni aceste accidente. Microsoft Visual
SourceSafe este un exemplu de astfel de program care se poate integra direct n VB cu
ajutorul unui Add-Ins.
Componentele compilate folosite n proiect snt descrise n fis-ierul cu extensia .vbp, dar snt
accesate prin informat-iile din registrul Windows-ului fa7 ra7 a fi stocate n directorul care
cont-ine fis-ierele proiectului.
Folosit-i Notepad-ul pentru a vizualiza cont-inutul fis-ierelor unui proiect, vet-i ga7 si urma7 toarele
tipuri de componente VB6:
! Formulare, se stocheaza7 n fis-iere text cu extensia .frm . Orice cont-inut binar
va fi salvat sub acelas-i nume de fis-ier dar cu extensia .frx ;
! Module de cod, se stocheaza7 ca fis-iere text s-i au extensia .bas ;
! Clase, este stocat s-i n format text n fis-ierele cu extensia .cls ;
! Controale necompilate, se salveaza7 ca fis-iere text cu extensia .ctl , iar
16
formatul binar sub extensia .ctx (la fel ca la formulare);
! Fis-iere de resurse, folosite pentru internat-ionalizarea proiectului, au extensia
.res .
! Mediile de prelucrare a datelor sau unele instrumente de dezvoltare folosesc
fis-iere text auxiliare cu extensia .dsr (sau dsx daca7 snt compilate).
n final, este posibila7 combinarea a 2 sau mai multor proiecte ntr-un grup de proiecte care
va avea extensia .vbg . Aceasta este o procedura7 comuna7 folosita7 la testarea s-i depanarea
proiectelor ActiveX in-process.
Salvarea proiectului
! Pa7 strat- i toate componentele ntr-un singur
director.
Mediul VB are o setare prin care poate salva automat modifica7 rile aduse unui program nainte
de lansarea lui n execut-ie (Tools Option Environment Save Changes).
17
Utilizarea -s abloanelor (templates)
Convenabile - Consistente - Sigure
Prin salvarea unui fis-ier n directorul corespunza7 tor se pot fabrica componente predefinite
pentru noile proiecte. n fereastra de dialog Add Form, observat-i ca7 la unele icon-uri le
corespund 2 fis-iere (cu extensiile .frm s-i .frx ) n subdirectorul Forms .
18