„Practica europeană pentru alinierea cunoștințelor IT la cerințele actuale ale pieței muncii”
Programare Orientată pe obiecte
VISUAL BASIC
-
|
Realizat de:
|
Lőrincz Dorottya-Gabriella
|
Markus Anita
|
Nagy Szabolcs
|
Struber Henrik-Iliasz
|
Szántó Ágnes-Bernadett
|
Varga Daniel
|
Zsi Martin
|
Granada 2017
Noţiuni elementare de Programare Orientată pe Obiecte în Visual Basic
Obiecte entităţea si colecţii
Obiect este orice entitate pe care o putem controla cu ajutorul limbajului Visual Basic.
Un program (aplicatie) reprezinta o secventa de actiuni (operatii) care se executa asupra unor entitati (valori sau obiecte).
Limbajul de programare VBA imbina utilizarea obiectelor cu posibilitatile folosirii tehnicii avansate de programare
Proprietăţi
Obiectele au anumite trasaturi specifice care le caracterizeaza si pe care le numim proprietati.
Proprietatile reprezinta atribute ale obiectelor, care descriu aspectul, starea sau comportarea acestora.
Obiectele sunt caracterizate si prin actiunile pe care pot sa le efectueze, actiuni numite metode.
Cand programam in Visual Basic avem posibilitatea sa manevram obiectele care ne intereseaza in trei feluri :
-
sa stabilim valoarea unei proprietati a obiectului si, in acest fel, sa-i modificam starea
-
sa citim valoarea curenta a unei proprietati si, deci, sa-i determinam starea
-
sa cerem ca un obiect sa efectueze una dintre actiunile (metodele ) care-l caracterizeaza.
Clase si proprietăţi
O clasă poate conţine câmpuri, metode sau proprietăţi. Membrii claselor pot avea oricare din specificatorii de acces permişi în Visual Basic: Private, Friend, Protected, Protected Friend şi Public.
Proprietăţile reprezintă modalităţi de expunere publică a câmpurilor unei clase, putând la nevoie să ofere numai drept de citire (read only) sau drept de scriere (write only). Avantajul utilizării proprietăţilor este acela că ele permit scrierea de cod asociat operaţiilor de atribuire şi verificarea în acest fel a validităţii datelor transmise.
Evenimente
Evenimentele se produc ca urmare a unei actiuni a utilizatorului (ex. evenimentul click corespunde apasarii butonului stâng al mouse-ului pe obiectul respectiv), sau în urma executiei codului programului, sau pot fi declansate de catre sistem.
Majoritatea obiectelor vor raspunde unui anumit numar de evenimente generate de catre utilizator printre care click-uri, dublu click-uri, apasari de taste sau trageri si eliberari ale obiectului. Limbajul Visual Basic pune la dispozitia utilizatorului un mediu de dezvoltare care permite crearea de programe orientate spre obiecte si conduse de evenimente. Pentru lucrul cu obiecte conduse de evenimente se parcurg urmatoarele etape:
-
se creeaza o noua forma careia i se da un nume;
-
se deseneaza si se denumesc obiectele ce urmeaza a fi afisate în forma respectiva;
-
se ataseaza fiecarui obiect codul ce va fi executat ca raspuns la evenimente generate de utilizator sau de sistem.
Va rezulta o interfata grafica cu care interactioneaza utilizatorul pentru a controla evolutia programului. Rezumând putem spune ca în programarea orientata spre obiecte si dirijata de evenimente, obiectele au un comportament predefinit care poate fi modificat de utilizator prin atasare de cod corespunzator si aceste obiecte raspund la evenimente declansate fie ca urmare a actiunii utilizatorului asupra obiectelor, fie ca urmare a executiei codului atasat, fie declansate de sistem.
Evenimentul Click
Se produce in momentul in care se actioneaza o singura data butonul mouse-ului intr-un obiect sau dupa selectarea unei valori din mai multe posibile acolo unde este cazul (exemplu selectarea unei valori dintr-o lista derulanta de valori-ComboBox-va genera producerea evenimentului Click).
Structura aplicaţiei Visual Basic Fereastra principală
Form Design
Putem stabili forma principal a aplicaţiei propriu zis
Proprietati si metode
Un obiect este definit de un set de proprietati cum ar fi: dimensiune, culoare, pozitie pe ecran, comportament (ex. daca un buton radio este activ sau nu la un moment dat etc.). O metoda este o procedura (succesiune de instructiuni) asociata unei anumite actiuni a unui obiect. Spre exemplu în Visual Basic exista o metoda Move asociata majoritatii obiectelor (permite mutarea obiectelor).
Deci proprietatile descriu obiectele iar metodele definesc actiunile obiectelor, iar pe de alta parte proprietatile reprezinta date iar metodele reprezinta cod (instructiuni). Astfel în gramatica programarii orientate spre obiecte :
-
obiectele sunt substantive;
-
proprietatile sunt adjective;
-
metodele sunt verbe.
Stabilire proprietati si executare metode
Proprietatile unui obiect pot fi setate în faza de proiectare (atunci când se deseneaza sau se modifica formele) utilizând fisa Properties a formei sau obiectului din forma (fisa este automat vizualizata la selectia obiectului respectiv: forma, buton, etc.). De asemenea fisa Properties poate fi vizualizata prin click dreapta si selectie Properties.
Proprietatile pot fi modificate si prin program în momentul executiei formei, daca codul de program asociat contine instructiuni care refera si seteaza proprietati (ca în exemplul de mai sus în care schimbam culoarea fondului formei).
Spre deosebire de proprietati, metodele pot fi executate numai în momentul executiei programului (eventual în momentul depanarii programului utilizând facilitatea Debugger a programului Visual Basic).
Denumirea obiectelor
Orice obiect are proprietatile:
Name - numele utilizat în scrierea codului
Capture - numele dat obiectului pentru a putea fi identificat de utilizator. Visal Basic da nume implicite obiectelor. Este indicat ca utilizatorul sa dea nume obiectelor (Name) utilizând urmatoarea conventie: un prefix format din 3 litere mici (ex. frm pentru forma, cmd pentru buton de comanda, etc.) un sir de caractere care identifica obiectul (ex. Forma1, Ecran1, Buton1, etc.).
În tabelul urmator sunt prezentate conventiile de denumire a obiectelor din Visual Basic:
Obiect
|
Prefix
|
Exemplu
|
Forma
|
frm
|
frmForma1
|
Buton de comanda
|
cmd, btn
|
cmdButon, btnOK
|
Caseta de text
|
txt
|
txtCaseta1
|
Bare de derulare
- orizontala
- verticala
|
hsb
vsb
|
|
Meniu
|
mnu
|
mnuMeniuPrinc
|
Caseta de validare
|
chk
|
|
Caseta cu lista
|
lst
|
|
Cadru
|
fra
|
|
Imagine
|
img
|
|
Buton de optiune (radio)
|
opt
|
optBO1
|
Creare forma:
Dupa creare forma se pot desena obiecte în forma utilizând bara de instrumente Toolbox Controls prin selectare obiect, antrenare pe suprafata formei si depunere obiect ca în exemplul de mai jos:
Butoane de comanda - sunt utilizate pentru a începe, a întrerupe sau a încheia un anumit proces.
Când se executa click cu mouse-ul arata ca si cum ar fi apasat, de unde si denumirea sa în engleza Push button. Pentru a afisa text pe buton trebuie definita proprietatea Caption. Prezenta unui caracter & în textul proprietatii Caption face ca ceea ce urmeaza dupa & sa fie tasta de acces în combinatie cu tasta Alt. Selectia unui buton de comanda se face prin click cu mouse-ul sau cu tasta Tab pentru a ajunge pe buton si apoi se apasa tasta Enter. Daca proprietatea Default a unui buton are valoarea True, atunci acest buton poate fi selectat în orice moment prin apasarea tastei Enter indiferent ce control este curent în acel moment.
Daca proprietatea Cancel a unui buton este stabilita pe valoarea True atunci acel buton poate fi selectat prin tasta Esc.
Proprietati uzuale ale unui buton de comanda
Proprietate
|
Descriere
|
Exemple de valori
|
Appearance
|
Selecteaza aspectul 3D sau plat
|
1= 3D, 0 = plat
|
Cancel
|
Permite selectarea cu ESC
|
True, False
|
Caption
|
sirul de caractere afisate pe buton
|
caractere
|
Default
|
Permite selectarea cu tasta Enter
|
True, False
|
Font
|
Stabileste corpul, stilul si dimensiunea caracterelor
|
MS Sans Serif, Bold, 12
|
- Etichete - sunt controale grafice folosite pentru a afisa text pe care utilizatorul nu îlpoate modifica direct ci doar cu ajutorul instructiunilor (codului). Pentru ca eticheta sa afiseze corect linii multiple de diverse lungimi se vor stabili proprietatile AutoSize si WordWrap la valoarea True.
- Casete de text sau TextBox-uri sau casete de editare, sunt utilizate pentru a afisa informatii introduse de utilizator la rulare sau asociate controlului prin program. Accesul la textul afisat se obtine prin stabilirea sau citirea proprietatii Text a controlului, ceea ce poate face fie direct în faza de proiectare, fie prin cod utilizând notatia cu punct.
Exemplu de citire:
sTextCaseta1= txtCaseta1.Text (daca a fost creata o caseta de text numita txtCaseta1).
Pentru a afisa mai multe linii de text într-o caseta de text, proprietatea MultiLine trebuie sa fie selectata pe valoarea True.
Daca o caseta de text multilinie nu contine o bara de derulare orizontala, textul va fi împartit automat pe rânduri chiar daca caseta este redimensionata. Barele de derulare se stabilesc cu proprietatea ScrollBars: Horizontal, Vertical, Both, None.
Daca proprietatea MultiLine este True, se poate utiliza proprietatea Alignment pentru a alinia textul la stânga, la dreapta, sau în centrul zonei, iar daca MultiLine este False, Alignment nu are efect.
Implicit textul este aliniat la stânga
Proprietati uzuale ale unei casete Text Box
Proprietate
|
Descriere
|
Exemplu de valori
|
Appearance
|
Selecteaza aspectul 3D sau plat
|
1= 3D, 0 = plat
|
Border Style
|
Precizeaza tipul chenarului
|
0 - fara chenar,
1 - chenar simplu
|
Font
|
Stabileste corpul, stilul si dimensiunea caracterelor
|
MS Sans Serif, Bold, 12
|
PasswordChar
|
Ascunde textul cu un singur caracter
|
Ex. * sau #
|
SelStart
|
Pozitia initiala pentru selectarea textului
|
numai la rulare
|
SelLength
|
Precizeaza lungimea textului selectat
|
numai la rulare
|
Tag
|
Memoreaza informatii suplimentare
|
orice expresie sir
|
Proprietatile SelStart si SelLength sunt disponibile numai la rulare si deci nu vor fi afisate în fereastra Properties a casetei de text. Proprietatea Tag poate stoca informatii suplimentare, ca de exemplu parola sistemului în faza de proiectare.
- Butoane de optiune (butoane radio) (Option Button) - afiseaza o optiune care poate fi activata s-au dezactivata (·,o), functie de valoarea True sau False a proprietatii Value a butonului. În general butoanele de optiune se utilizeaza în grupuri (mai multe butoane) afisate într-un cadru - ca lista de optiuni ce se exclud reciproc. Toate butoanele de optiune afisate într-un recipient (cadru) se comporta ca un grup, deci numai unul singur poate fi activ la un moment dat (întâi se deseneaza cadrul si apoi se depun butoanele în cadru - desenarea ulterioara a cadrului nu are nici un efect asupra grupului).
Prin intermediul proprietatii Caption fiecarui buton i se poate atasa un text ce va fi afisat imediat în dreapta butonului. Fiecarui buton i se poate atasa cod ca de exemplu:
If optButon1.Value = True Then
MsgBox "Buton selectat" ¢ Testeaza starea curenta a butonului
optButon1
Else
MsgBox "Buton neselectat"
End if
- Casete de validare - afiseaza o caseta care poate fi activata sau dezactivata (˜,˜).
Se pot grupa mai multe casete de validare într-un cadru, însa spre deosebire de butoanele de optiune, pot fi active mai multe casete din grup la un moment dat.
Prin proprietatea Caption se poate afisa text explicativ în dreapta casetei ca mai jos:
Select Case chkCv1
Case 0
VMsg = "Nebifata"
Case 1
VMsg = "Bifata"
Case 2
VMsg = "Indisponibila"
End select
MsgBox VMsg
- Cadre - ofera posibilitatea de a grupa controale înrudite (butoane de optiune, casete de validare). Întâi se deseneaza cadrul si apoi controalele.
- Caseta cu lista (list box) afiseaza o lista de articole din care utilizatorul poate
selecta unul sau mai multe. Pentru a prelucra articolele selectate se utilizeaza evenimentul Click sau Double Click ale casetei cu lista.
- Casete combinate (ComboBox) - combina facilitatile unui TextBox cu cele ale unui ListBox (contine o caseta cu lista si o caseta text).
Proprietati si metode comune ale casetelor cu lista si casetelor combinate.
Proprietate
|
Semnificatie
|
Exemplu de utilizare
|
ListCount
|
Nr. articole ale listei
|
iOptiune = lstLista1.ListCount - 1
|
ListIndex
|
Indexul numeric al articolului curent
|
lstLista1.ListIndex = 3
|
List
|
Asociata cu indexul returneaza articolul curent din lista
|
sArt3 = lstLista1.List(3)
|
Selected
|
Are valoarea True daca este selectat articolul
|
If lstLista1.Selected(3) Then
.
|
Sorted
|
Lista va fi sortata daca valoarea proprietatii sorted este True
|
lstLista1.Sorted = True
|
|
|
|
Metode
|
Semnificatie
|
Exemplu de utilizare
|
AddItem
|
Adauga listei un articol de tip sir
|
lstLista1.AddItem = "Ionescu Ion"
|
Clear
|
Elimina toate articolele din lista
|
lstLista1.Clear
|
RemoveItem
|
Elimina un singur articol din lista
|
lstLista1.RemoveItem 5
|
- Bare de derulare (orizontale si verticale) permit parcurgerea unor liste mari. Ori de câte ori se efectueaza click pe o bara de derulare se executa procedura evenimentului Change. Când se trage bara de derulare se declanseaza evenimentul Scrool, iar la eliberarea de pe bara de derulare se executa evenimentul Change.
- Spinner (SpinButton) - permite incrementare sau decrementare numere, prin atasare si activarea unui buton spinner unei etichete sau unei casete de text.
- Controale cu imagini - permit afisarea de imagini pe suprafata unei forme, putând utilza pentru aceasta doua tipuri de controale si anume: PictureBox si Image.
Controalele Image pot fi create din bara de instrumente Toolbox Controls, aceste controale prezentând si avantajul ca imaginile plasate în ele pot fi redimensionate prin stabilirea proprietatii Stretch a controlului la valoarea True. Controalele Image nu accepta grafica desenata în timpul rularii si nu pot fi utilizate ca recipiente pentru alte controale.
Controalele PictureBox accepta grafica desenata în timpul rularii programului utilizând metodele Line, Circle si Pset. Daca grafica încarcata dintr-un fisier depaseste suprafata controlului PictureBox, grafica va fi trunchiata exceptînd situatia în care proprietatea AutoSize are valoarea True.
Fisierele imagine pot fi importate în controale Image sau PictureBox fie prin setarea proprietatii Picture a controlulu, fie cu ajutorul functiei LoadPicture() în timpul rularii programului.
Exemplu. Pentru a incarca fisierul imagine Poza.jpg din directorul C:\Imagini, în controlul Image care are numele (Name) imag1 se va scrie instructiunea:
imag1.Picture = LoadPicture("C:\Imagini\Poza.jpg")
Pentru a elimina imaginea dintr-un control imagine se va folosi functia LoadPicture fara nici un argument ca în exemplul de mai jos:
imag1.Picture = LoadPicture()
- Controale lista de fisiere, de unitati de disc si de directoare
- DriveListBox - permite selectarea, la rularea programului, a unei unitati de disc
- DirListBox - afiseaza o lista ordonata a directoarelor si subdirectoarelor de pe disc si prin click cu mouse permite utilizatorului sa navigheze prin directoare
- FileListBox - afiseaza fisierele din directorul specificat de proprietatea Path la rularea programului.
Dostları ilə paylaş: |