Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Obiecte programabile in realizarea aplicatiilor
Vom defini obiectele programabile ca fiind forme ale unei aplicatii ce pot fi create de utilizator. Construirea acestora se realizeaza prin intermediul controrelelor prezente in Tooolbox (Bara de instrumente - casta General). În capitolul anterior, la descrierea modului de proiectare a aplicatiilor, am prezentat un exemplu amanuntit legat de utilizarea butonului Command. În continuare vom prezenta si celelalte tipuri de obiecte ce se pot crea prin intermediul barei de instrumente.
1. Functii si proceduri
Pentru introducerea codului VB in cadrul formelor din proiectele realizate, mediul de programare pune la dispozitia utilizatorului subrutine care pot fi proceduri sau functii. Le vom numi, intr-un cuvant, metode.
Putem acum defini si conceptul de clasa ca fiind un ansamblul de instructiuni ce decrie proprietatile unui obiect, impreuna cu medodele care permit generarea subrutinelor care pot conduce la manipualrea structurilor de date ale obiectului.
Subrutinele de tip procedura reprezinta secvente de instructiuni grupate si identificabile printr-un nume. Ele pot fi de mai multe feluri, si anume:
Procedurile generale descriu desfaturarea unei actiuni si pot fi apelate in cadrul aplicatiei. Ele pot fi prezente in modulele formei, ale clasei sau codului.
Procedurile eveniment sunt cele create automat odata cu crearea unui eveniment, fie la solicitarea expresa a utilizatorului, fie automat, de catre sistemul de calcul, la un anumit interval de timp.
Procedurile Subrutine propriu-zise sunt unitati de program care efectueaza un anumit grup de actiuni descrise in cadrul unui cod VB. În prezentarea instructiunilor standard de intrare / iesire si in exemplele prezentate in paragraful anterior, am utilizat deja doua dintre aceste proceduri subrutine standard: InputBox si MsgBox. Acest tip de procedura este recunoscuta automat de catre mediul de programare. Utilizatorul trebuie doar sa apeleze in propriul program o astfel de subrutina. În VB sunt definte multe subrutine standard (predefinite) cum ar fi:
Beep - realizeaza emiterea de catre calcualtor a unui sunet
FileCopy - permite realizarea unei copii a unui fisier
Name - realizeaza redenumirea unui fisier
Print - permite afisarea de mesaje sau valori in fereastra formei
MsgBox - permite afisarea de mesaje sau valori intr-o casta de
mesaj
În afara acestor proceduri (subrutine) standard sau predefinite si deci automat recunoscute de VB, utilizatorii pot defini proceduri proprii.
Sa considera, spre exemplificare, urmatoarea situatie: Un grup de operatii pot fi grupate intr-o procedura care are un grad mare de generalitate in sensul ca ea este necesar a se executa in cadrul programul destinat rezolvarii mai multor probleme, de multe ori total diferite. În aceasta situatie putem construi o procedura de tip subrutine care sa poata fi apelata ori de cate ori avem nevoie in cadrul unui cod. Sa presupunem ca dorim sa rezolvam o ecuatie de gradul II de forma ax2+bx+c=0, cunoscand, ca date introduse de la tastaura, coeficientii a, b, c ai acesteia.
Rem Declaram variabilele globale a, b si c
Dim a As Single
Dim b As Single
Dim c As Single
Rem Construim programul principal aferent butonului
Rem Command1 prezent in forma proiectului
Sub Command1_Click()
pa_a = InputBox('Coeficientul lui x^2=')
pa_b = InputBox('Coeficientul lui x^1=')
pa_c = InputBox('Coeficientul lui x^0=')
ecuatie pa_a, pa_b, pa_c
End Sub
Rem Construim procedura subrutina utilizator
Sub ecuatie(pf_a As Single, pf_b As Single, pf_c As Single)
Dim delta, x1, x2 As Single
delta = pf_b * pf_b - 4 * pf_a * pf_c
If delta >= 0 Then
x1 = (-pf_b - Sqr(delta)) / (2 * pf_a)
x2 = (-pf_b + Sqr(delta)) / 2 / pf_a
MsgBox 'x1=' + Str(x1) + ' x2=' + Str(x2)
Else
MsgBox ('imposibil pe R')
End If
End Sub
Sa facem cateva precizari referitoare la modul de utilizare a procedurilor utilizator in programele VB, avand drept suport de discutie exemplul anterior:
Pentru a folosi o procedura utilizator, adica a o apela in cadrul unui cod VB, trebuie mai intai sa definim aceasta procedura. Definirea unei proceduri utilizator contine doua elemente: linia de definire si corpul procedurii.
Linia de definre a urmatorul format general:
Sub <nume_procedura>(<pf_1> As <tip_1>[, ,<pf_n> As <tip_n>)
unde <nume_procedura> reprezinta numele de identificare a procedurii care va fi folosit la apelul acesteia in programul apeland, pf_i reprezinta identificatori ce joaca rol de parametri formali, iar tip_i reprezinta tipul acestora. Parametri formali sunt variabile ce au rolul de a permite descrierea algoritmului din corpul procedurii, preluand intial, ca urmare a apelarii procedurii, valorile variabilelor prezente in apel pe post de parametri actuali. În exemplul considerat linia de definire a procedurii utilizator este
Sub ecuatie(pf_a As Single, pf_b As Single, pf_c As Single)
cu ecuatie pe post de nume al procedurii si pf_a, pf_b, pf_c pe post de parametri formali de tip Single (numar real in simpla precizie) - in cazul de fata coeficientii ecuatiei.
Corpul procedurii contine instructiunile care descriu algoritmul prelucrarilor, in cazul exemplului nostru toate instructiunile cuprinse intre liniile Sub si End Sub.
Apelul procedurii se face in cadrul programului apelant intr-o linie de program cu formatul general urmator:
<nume_procedura> <lista_parametri_actuali>
unde <nume_procedura> este acelasi cu cel present in linia de definire a procedurii, iar lista de parametri actuali reprezinta lista variabilelor care vor transmite valori ce vor initializa, in urma apelului, valorile parametrilor formali prezenti in linia de definire. Este important ca ordinea si tipul parametrilor actuali sa corespunda cu cele ale parametrilor formali. În cazul exemplului considerat linia de apel este prezetna in programul principal:
ecuatie pa_a, pa_b, pa_c
Subprogramele de tip functie sunt rutine ce efectuaza anumite calcule si returneaza programului apelant valoare calculata. În VB exista mai multe functii predefinite, cum ar fi:
Abs( )- returneaza valoarea absoluta a numarului transmis ca parametru
Asc( ) - returneaza codul ASCII corespunzator caracterului transmis ca parametru
Chr( ) - returneaza caracterul corespunzator unui cod ASCII transmis ca parametru
Cos( ) - returneaza valorea cosinusului unui unghi a carui marime exprimata in radiani este transmisa ca parametru
Date( ) - returneaza data calendaristica curenta
DateAdd( ) - returneaza rezultatul adaugarii sau scaderii unei perioade de timp specificate ca parametru la o anumita data calendaristica
DateDiff( ) - returneaza intervalul de timp dintre doua date calendaristice transmise ca parametrii
DatePart( ) - returneaza o parte specificata a unei date
Format( ) - returneaza o expesie intr-un format specificat
Instr( ) - returneaza pozitia unui subsir in cadrul unui sir
Lcase( ) - returneaza sirul de caractere prin conversia tuturor caracterelor la minuscule
Left( ) - returneaza primele n caractere ale unui sir (n si sir date ca parametru)
Len( ) - returneaza lungimea, exprimata in numar de caractere, a unui sir dat ca parametru
Mid( ) - extrage un subsir dintr-un sir dat
UCase( ) - returneaza sirul de caractere transmis ca parametru prin conversia acestora la majuscule
LCase( ) - returneaza sirul de caractere transmis ca parametru prin conversia acestora la minuscule
LTrim( ) - elimina spatiile din stanga sirului transmis ca parametru
Rtrim( ) - elimina spatiile din dreapta sirului transmis ca parametru
Trim( ) - elimina spatiile din stanga si din dreapta sirului transmis ca parametru
Val( ) - transfoma in valoare numerica un sir de caractere (daca este posibil)
DDB - calculeaza si returneaza amortismentul pe o perioada specificata ca parametru, prin metoda amortismentului regresiv cu rata dubla sau dupa un coeficient specificat. Formatul general de apelare a functiei: DDB(cost, valoare reziduala, durata, perioada, factor), unde cost - costul intial al investitiei, valoarea rezduala - valoarea ramasa la sfarsitul perioadei de amortizare, durata - numarul de perioade (de ex. luni) in care investitia se va amortiza, perioada - durata de timp, factor - coeficient de regresie.
IPMT - calculeaza si returneaza suma dobanzilor unei investitii pentru o perioada data
IRR - calculeaza si returneaza rata de rentabilitate interna pentru fluxurile financiare, pozitive sau negative finantate la rate diferite
NPFR - calculeaza si returneaza numarul de plati pentru o investitie data
NPV - calculeaza si returneaza valoarea actuala neta a unei investitii pe baza fluxurilor financiare variabile transmise ca parametri
RATE - se foloseste pentru obtinerea ratei dobanzii pe perioada data a unei investitii.
Exemplu de utilizare a functiilor predefinite:
Sa se scrie o procedura VB care sa permita afisarea codului ASCII al unui caracter introdus de la tastatura, un caracter al carui cod ASCII se introduce de la tastaura si pozitia unui subsir in cadrul unui sir. Iata continutul acestei proceduri:
Private Sub Command1_Click()
Rem Exemple de utilizare a functiilor si procedurilor standard VB
Dim n, l1, l2 As String * 1
Dim cod, x As Byte
Dim sir1, sir2 As String * 20
n = InputBox('Caracterul al carui cod ASCII se cere ')
MsgBox 'Codul ASCII al caracterului ' + n + ' este ' + Str(Asc(n))
cod = InputBox('Codul ASCII pentru un caracter ')
MsgBox 'Caracterul cu codul ASCII ' + Str(cod) + ' este ' + Chr(cod)
sir1 = InputBox('Introduceti primul text')
sir2 = InputBox('Introduceti al doilea text')
l1 = Len(sir1)
l2 = Len(sir2)
x = InStr(Left(sir1, l1), Left(sir2, l2))
MsgBox 'Textul ' + sir2 + ' este pe pozitia ' + Str(x) + ' in textul ' + sir1
sir1=Upcase(sir1)
MsgBox 'Primul text indrodus si scris cu litere mari este ' + sir1
End Sub
Lasam ca exercitiu testarea in program a celorlalte functii prezentate dar neincluse in exemplul anterior.
2. Butoane de comanda
Un buton de comanda pemite descrierea actiunilor declansate de un anumit eveniment: inceperea, intreruperea sau incheierea acestuia. Atasat unui buton de comanda putem stabili urmatoarele proprietati, folosind facilitatile oferite de VB prin intermediul ferestrei Properties:
Ø Indicarea textului care dorim sa apara inscris pe buton, precum si a proprietatilor acestui text legate de : marime, stil, font, mod de afisare si caracterul ce apare subliniat in cadrul acestuia. Acest caracter va fi precedat de & si permite apelarea evenimentului (butonului de comanda) prin comnatia de taste ALT si acest caracter. Toate aceste caracteristici se pot stabili folosind proprietatile Caption si Font;
Ø Evenimentul asociat unui buton de comanda va putea fi declansat si la apasarea tastei ENTER sau ESC daca proprietatea Default sau Cancel sunt setate la valoarea TRUE;
Ø Aspectul tri sau bidimensional al butonului poate fi stabilit prin intermediul proprietatii Appearance;
Ø Butonul poate fi reprezentat ca o pictograma, daca proprietatea Picture este prezenta;
Ø Daca dorim ca butonul sa devina neoperational, atunci vom apela la proprietatea Visible, pe care o setam pe No.
Toate proprietatile asociate unui buton de comanda pot fi stabilite din fereastra Properties asociata fiecarui astfel de obiect si plasata, de obicei, in partea dreapta a ferestrei formei in care am inclus obiectul.
În
continuarea vom exemplifica prin construirea unei aplicatii care sa
contina un singur buton de comanda, acesta va purta numele "Prima actiune", va avea
posibilitatea sa fie apelat si prin ALT+P, va fi scris Bold, iar
evenimentul declansat de actionarea acestuia va fi calculul valorii
unui produs, cunoscand cantitatea si pretul, si
apeland la o functie (pentru calculul valorii) si o
procedura pentru afisarea acesteia.
Fig. 10.3.2.1.
Fig. 10.3.2.2.
În fig. 10.3.2.1. avem prezentata interfata aplicatiei care contine un singur obiect de tip buton de comanda plasat in cadrul formei Form1 a proicetului VB. Folosind fereastra Properties atasata butonului de comanda Command1 vor stabili proprietatile acestuia: prin prorietatea Caption vom introduce textul ce dorim sa apara pe buton, adica &prima actiune, prin proprietatea marimea caracterelor si modul de afisare (bold - ingrosat)etc.
În fig. 10.3.2.2. avem afisat textul codului program pe care il atasam butonului de comanda prin intermediul editorului de programe apelat prin dublu click pe butonul de comanda. Acesta contine un program principal cu declararea variabilelor, introducerea de la tastatura a datelor de intrare prin intermediul functiei standard InputBox, apelarea functiei valoare pentru calculul valorii prin inmultirea cantitatii cu pretul produsului si a procedurii afisval pentru afisarea rezultatului folosind procedura standard MsgBox. Functia valoare si procedura afisval au fost definite de utilizator in continuarea programului principal, in conformitate cu cele stabilite in 1.
Executia
aplicatiei astfel generata se face utilizand functia Start
a submeniului Run sau tasta functionala F5. In figurile 10.3.2.4,
10.3.2.5. si 10.3.2.6. se poate urmari succesiv evolutia
evenimentului generat de butonul de comanda creat ca interfata
in aplicatia proiectata.
Fig. 10.3.2.4.
Fig. 10.3.2.5. - 10.3.2.6.
3. Etichete si casete de text
Etichetele (Label) sunt controrele grafice utilizate pentru a introduce un text explicativ (de exemplu, privind datele ce urmeza a fi afisate pe ecran sau introduse de la tastaura). Se pot utiliza si pentru afisarea unui text oarecare in cadrul unei forme a unui proiect.
Caseta text (TextBox) este un controler de editare folosit pentru a permite introducerea sau afisarea de informatii in timpul executiei unei aplicatii. Trecerea de la un TextBox la altul se face cu mouse-ul sau prin apasarea tastei TAB.
Cele doua tipuri de controlere sunt, de obicei, cuplate: eticheta ofera explicatia suplimentara asupra datelor ce vor fi introduse sau afisate in cadrul casetei de text. Acestea pot inlocui, in cadrul codului program asociat unui boton de comanda, instructiunile de intrare / iesire InputBox si MsgBox.
Pentru exemplificare sa reluam problema calculului valorii unui produs utilizand, de aceasta data, etichete si casete de text pentru introducerea datelor si afisarea rezultatului. Interfata realizata in acest caz este prezentata in fig. 10.3.3.1.
Fig. 10.3.3.1.
Se poate observa ca am utilizat trei etichete (generate cu ajutorul celui de-al treilea controler din General, si anume ce notat A (label)). Acestea genereaza pe ecran textele Cantitate, Pret, Valoare introduse prin folosirea proprietatii Caption din Properties. Proprietatea Font permite definirea stilului, a formei de afisare (bold) si a marimii caracterelor din text.
Interfata cuprinde, de asemenea, si 4 casete de text (TextBox), prima pentru afisarea unui text introdus folosind optiunea Text si a carui forma este stabilita cu optiunea Font din fereastra Properties. Urmatoarele trei permit introducerea valorilor reprezentand cantitatea si pretul, respectiv afisarea valorii calculate.
La executia aplicatiei, dupa lansarea in executie a acesteia, am introdus valorile soilicitate de problema ca date de intrare (cantitate si pretul) si apoi am actionat butonul de camanda CalculValoare. Ca urmare, in caseta text precedata de eticheta cu textul Valoare a fost afisata valoarea calculata. În interfata este prezent, de asmenea, si butonul Iesire care permite parasirea aplicatiei.
Textul codului
este introdus dupa dublu click de mouse pe fiecare din cele doua
butoane de comanda. El este prezentat in fig. 10.3.3.2. si
contine declararea variabilelor globale cant si pret ca
avand tipul real in simpla precizie (single). Urmeaza
descrierea procedurii, de tip
subrutina si Fig. 10.3.3.2.
care contine declararea variabilei locale valoare. Introducea valorilor corespunzatoare pentru cantitate si pret se face prin intermediul a doua instructiuni de atribuire, in casete text, transformandu-se aceste valori, considerate implicit de tip text, in valori numerice cu ajutorul functiei predefinite val. Calculul valorii obtinuta prin produsul dintre cantitate si pret, se face tot printr-o instructiune de atribuire, prin care variabila Text3.text primeste ca valoare sirul de caractere obtinut cu ajutorul functiei str. În fig. 10.3.3.2., se observa, de asemenea prezenta subrutinei asociata butonului Iesire care contine doar instructiunea End.
4. Butoane de optiuni
Botoanele de optiuni permit alegerea dintr-un grup de mai multe optiuni a uneia anume, celelalte considerandu-se deselectate.
Pentru crearea
butoanelor de optiuni, se realizeaza o interfata care
cuprinde controrelele necesare, inclusiv butoanele radio, folosind
instrumentele corespunzatoare din ToolsBox.
Fig.10.3.4.1.
În fig. 10.3.4.1. avem reprezentata o astfel de interfata pentru rezolvarea unei probleme foarte simple: utilizatorul poate introduce date privitoare la pretul unui produs si cantitatea vanduta din acesta, sau solicta calculul valorii si a TVA-ului pentru aceasta vanzare. Interfata contine trei butoane de obtiuni, notate Date, Valoare, TVA, un buton de comanda, notat Executie si o caseta text in care se vor afisa texte explicative sau rezultatul prelucrarilor solicitate. Pentru a putea construi, asociat butonului de comanda, codul program corespunzator, trebuie sa putem referi butoanele de optiuni (selectarea unui astfel de buton are ca efect returnarea valorii TRUE, iar deselectarea a valorii FALSE). Referirea valorii returnata de fiecare buton de optiuni in parte se face prin numele atribuit fiecaruia in fereastra de proprietati, clauza (Name). Pentru exemplul nostru, am atribuit
fiecarui buton de optiuni din interfata acelasi nume, radio, asa cum se vede in (fig.10.3.4.1).
Fig. 10.3.4.2.
În felul acesta valorile returnate de fiecare buton vor fi memorate intr-un vector cu numele dat de noi butoanelor, respectiv radio. Se va vedea, urmarind si codul program, ca referirea acestor valori se face prin radio(j).value pentru valoarea returnata de catre butonul cu numarul de ordine egal cu j+1 (contorul j luand valori de la 0 la i-1, unde i reprezinta numarul de ordine al butonului de optiuni). În fig.10.3.4.2., care contine imaginea codului program, se observa ca:
variabilele c si p au fost declarate ca variabile globale, inaintea procedurii asociata butonului de comanda Executie;
determinarea numarului de butoane se face prin intructiunea i=radio.count, unde radio este numele vectorului care va retine valorile asociate fiecaruia dintre cele trei butoane, iar count este functia ce returneaza numarul butoanelor radio prezente in frame;
valoarea returnata de catre butonul j+1 este referita prin radio(j).value;
prin ciclul for se asigura parcurgerea, la fiecare executie a vectorului de valori ale butoanelor de optiuni, iar prin instructiunea alternativa if se decide executarea operatiilor corespunzatoare valorii TRUE returnata de fiecare dintre cele trei butoane.
În fig. 10.3.4.3. avem imaginea rezultatului obtinut prin executia aplicatiei proiectate, considerand ca am introdus o cantitate de 10 u, pretul fiind 100000 um, iar butonul selecat este Valoare.
Fig. 10.3.4.3.
5. Casete de validare, lista si combinate
Casetele de validare ofera utilizatorului posibilitatea de a stabili setarea unui controler: 1 - Activ (bifat), 2 - Inactiv (nebifat), 3 - Indisponibil. În dreptul fiecarei casete de validare poate fi atasat un text explicativ, prin intermediul functiei Caption din fereastra Form Properties.
Casetele lista sunt generate utilizand controlerul ListBox. Se genereaza controlere in interiorul carora sunt automat inscrise cuvantele list1, list2, . , listn (numerotarea se face automat de catre VB, functie de ordinea in care s-a solicitat crearea obiectului). Acest cuvant poate fi inlocuit cu unul utilizator, folosind optiunea Name din fereastra Properties. Numele astfel atribuit va putea fi folosit pentru a putea referi ListBox in cadrul codului program.
Fig. 10.3.5.1.
Vom urmari in continuare realizarea unei aplicatii, care sa calculeze si sa afiseze salariul brut la unui angajat cunoscand salariul tarifar, sporul de vechime (in %), numarul de ore suplimentar lucrate, alte sporuri. Vom calcula salariul brut dupa formula:
sb=st+st*sv/100+st/170*os+sp
unde, sb reprezinta salariul brut, st - salariul tarifar, sv - sporul de vechime in procente, os - numarul de ore suplimentare lucrate in luna respectiva, iar sp - alte sporuri.
Pentru generarea aplicatiei am realizat un proiect format din 4 forme (salvate cu nemele liste, lista2, lista3, lista4) si un modul (variabile _globale).
Prima forma (liste) (fig. 10.3.5.1.) am
utilizat-o pentru descrierea interfetei aplicatiei cu utilizatorul.
Ea contine un controler de tip eicheta (Label), al carui nume a
fost schimbat prin intermediul optiunii Caption din fereastra Properties
si permite definirea functiilor generale ale ferestrei: afisarea
optiunilor ce stau la dispozitia utilizatorului in utilizarea
aplicatiei. Controlerul lista a fost generat tot in aceasta
fereastra ca fiind de tip ListBox (preluat din fereastra General). Acesta
are asociat un cod program care face legatura cu celelate forme ale
aplicatiei. Asociat formei Form1, prin dublu click, se introduce un cod
program care permite definirea optiunilor
listei.
În figura 10.3.5.2. avem prezentat codul program asociat acestei forme.
Fig. 10.3.5.2.
Pentru definirea optiunilor din caseta lista (lista) se executa double-click de mouse in interiorul formei. Se introduce apoi codul program intre Private Sub Form_Load() si End Sub. Acesta va permite definirea optiunilor din caseta lista: "Culegere date", "Calcul", "Afisare salariu brut" si "Iesire". În Private Sub lista_dbclick am realizat, prin intermediul instructiunii if selectarea formei corespunzatoare celor 4 optiuni exprimate prin caseta lista. Codul program atasat listei se introduce prin apelarea editorului de programe activat prin dublu click pe cotroler-ul de tip caseta lista cu numele lista.
Forma Form2 corespunzatoare primei optiuni, adica "Culegere date" este prezenta in fig. 10.3.5.3. Ea contine 4 controlere de tip Label, care permit explicitarea semnificatiei datelor ce trebuie introduse, 4 controlere de tip Text, care permit introducerea datelor de intrare (salariul tarifar, sporul de vechime exprimat in procente, numarul de ore suplimentare, alte sporuri), precum si un buton de comanda, cu numele "Gata culegere date de intrare" si care are un cod program asociat (fig. 10.3.5.4). Prin instructiunile Form*.hide si Form*.show se realizeaza ascunderea si, respectiv reafisarea ferestrei Form*. Codul program permite introducerea de la tastaura a datelor de intrare. Acestea, ca si datele rezultate din calcul vor fi memorate de variabile globale declarare in consecinta in modulul inclus in proiect (fig.10.3.5.5.). În cadrul modulului Module1 au fost declarate cu declarativa Global acele variabile a caror valoare se doreste a fi utilizabila in toate formele si codurile program ce apartin proiectului.
Forma Form3 contine doar un buton de comanda cu textul "Calculez" (fig. 10.3.5.6.) si care are asociat codul program care realizeaza calculul salariului brut (fig.10.3.5.7.).
Forma Form4 contine un controler de tip text, unde se va afisa rezultatul calcului (salariul brut al angajatului), si alte doua de tip butoane de comanda: primul comanda afisarea rezultatului in zona de text anterior descrisa, iar al doilea permite revenirea in fereastra principala. (fig. 10.3.5.8). Codul program asociat celor doua butoane de comanda este prezentat in fig. 10.3.5.9.
Executia proiectului pe un exemplu concret conduce la urmatoarea succesiune de ferestre (fig.10.3.5.10. - forma Form1, 10.3.5.11. - forma Form2, 10.3.5.12 - forma Form3 si 10.3.5.13. - forma Form 4).
Fig.
10.3.5.5.
Fig.
10.3.5.3.
Fig. 10.3.5.6.
Fig. 10.3.5.7.
Fig. 10.3.5.8.
Fig. 10.3.5.9.
Fig. 10.3.5.10.
Fig. 10.3.5.11.
Fig. 10.3.5.12. Fig. 10.3.5.13.
Casetele combinate combina proprietatile casetelor lista (ListBox) cu cele ale casetelor text (TextBox). Exista trei stiluri de casete combinate si anume:
ü Stilul 0 - caseta contine o lista derulanta cu functiile oferite utilizatorului si o caseta text. Utilizatorul trebuie sa selecteze din lista derulanta optiunea dorita.
ü Stilul 1 - caseta combinata simpla. Acest tip de caseta combinata contine o lista nederulanta si o caseta text.
ü Stilul 2 - caseta cu lista derulanta, portiunea casetei de text fiind inaccesibila.
Pentru stabilirea stilului de caseta combinata se utilizeaza proprietatea Style din fereastra Properties asociata casetei combinate.
În continuare vom relua, pentru a oferi un exemplu de folosire a casetelor combinate, exemplul prezentat la casetele lista.
Interfata aplicatiei este aceeasi ca la casetele lista (fig.10.3.5.1.), numai ca din fereastra General se va selecta controlerul ComboBox. Acestuia i se va asocia urmatorul cod program, pe care il vom comenta pentru ai oferi mai multa claritate:
Private Sub Form_Load() acest cod program se asociaza la form1
lcomb.AddItem ('Culegere date') definirea optiunilor casetei combinate
lcomb.AddItem ('Calcul')
lcomb.AddItem ('Afisare salariu brut')
lcomb.AddItem ('Iesire')
lcomb.AddItem ('altceva')
End Sub
Private Sub lcomb_Click() acest cod program se asociaza castei combinate si permite selectarea formelor corespunzatoare fiecarei optiuni
If lcomb.List(lcomb.ListIndex( )) = 'Culegere date' Then
Form1.Hide ascunde Form1
Form2.Show face vizibila Form2
Else
If lcomb.List(lcomb.ListIndex( )) = 'Calcul' Then
Form1.Hide
Form3.Show
Else
If lcomb.List (lcomb.ListIndex())='Afisare salariu brut' Then
Form1.Hide
Form4.Show
Else
If lcomb.List(lcomb.ListIndex()) = 'Iesire' Then
End
Else
Form1.Hide
Form5.Show
End If
End If
End If
End If
End Sub
Executia aplicatiei conduce la acelasi parcurs ca si la casete lista, cu exceptia ferestrei de deschidere.
Spre deosebire de caseta lista (fi.10.3.5.10), unde lista de optiuni apare in cadrul unei casete ce prezinta bara de derulare verticala pentru deplasarea in cadrul listei de optiuni, in cazul casetelor combinate (fig.10.3.5.12.) apare, in dreptul casetei text, un buton, care, dupa accesarea, prin click de mouse, permite deschiderea casetei cu lista optiunilor.
Copyright © 2024 - Toate drepturile rezervate