+ All Categories
Home > Documents > curs programarea calculatoarelor

curs programarea calculatoarelor

Date post: 20-Jan-2016
Category:
Upload: alexandracristinna
View: 64 times
Download: 5 times
Share this document with a friend
Description:
Curs programarea calculatoarelor
30
Mediul de programare .NET (NET Framework): Compilatorul VB este programul translator al sistemului de programare VB Specificaţiile comune de limbaj (CLS = Common Language Specifications) Serviciile WEB - interfaţă HTML (HyperText Markup Language). Interfaţa cu vizuala utilizatorul (Graphical User Interface – GUI) “ecranul” (designul) pentru formularele/formatele de programare si pentru afişarea de imagini. Date şi XML constituie modulul prin care se realizează schimbul de date pe Internet. XML (eXtensible Markup Language) se utilizează pentru a descrie şi pentru a reprezenta datele.
Transcript
Page 1: curs programarea calculatoarelor

Mediul de programare .NET (NET Framework):

Compilatorul VB este programul translator al sistemului de programare VB

Specificaţiile comune de limbaj (CLS = Common Language Specifications)

Serviciile WEB - interfaţă HTML (HyperText Markup Language).

Interfaţa cu vizuala utilizatorul (Graphical User Interface – GUI) “ecranul” (designul) pentru formularele/formatele

de programare si pentru afişarea de imagini.

Date şi XML constituie modulul prin care se realizează schimbul de date pe Internet.

XML (eXtensible Markup Language) se utilizează pentru a descrie şi pentru a reprezenta datele.

Biblioteca claselor de bază (BCL = Base Class Library) conţine clasele de bază ale programelor.NET.

VB.Net este un limbaj orientat pe obiecte. Toate obiectele fac parte dintr-o clasă denumită SYSTEM.

Biblioteca rutinelor comune (Common Library Runtime – CLR) interfata limbajelor cu SO (Windows).

Page 2: curs programarea calculatoarelor

Modele (conceptuale) de programare .

Modelul orientat procedural => algoritmi specifici de rezolvare a problemelor.

Modelul orientat pe obiecte => particularizarea (procedurala) a unor obiecte programabile

Obiecte in VB.Net:

O B I E C T U L PREFIXFormular FrmBară derulantă orizontală OsbBară derulantă verticală VsbButon de comandă CmdButon de opţiune OptCasetă cu listă LstCaseta cu listă combinată CboCaseta de imagine ImgCasetă text Txtetc.

Obiectul ca unitate de prelucrare (programabila) => caracter dinamic => creare, utilizare, distrugere. Obiectul se caracterizează prin identiate, metode de comportament şi stare.

Clasa = categorie de obiecte cu caracteristici comune (proprietăţi şi metode).Clasa poate fi accesată prin interfaţa Interfaţa clasei este caracterizată prin nume, tipurile atributelor şi numele şi descrierea metodelor.

Proprietăţile unui obiect reprezintă atributele acestuia, cum ar fi dimensiunile (laţime, înalţime), poziţia pe formular, culoarea, etc.

TextCaptionMultiline

Metode Prin intermediul desfăşuratorului de obiecte (OBJECT BROWSER), sistemul VB evidenţiază metodele posibile pentru un anumit obiect.

CountADDRemove

Page 3: curs programarea calculatoarelor

Evenimente Oricare obiect programabil poate fi accesat printr-un eveniment. Pe de altă parte, asemenea obiecte pot declanşa, la rândul lor, diverse acţiuni programate.

EVENIMENT Actiune asociata implicitLoad Afişează conţinutul unui formular pe ecranUnload Degajează ecranul de un formularActivate Activează un formular (acesta devine fereastră activă)Deactivate Dezactivează un formular (acesta devine inactiv)Click Se acţionează o singură dată pe butonul mouse-ului, declanşând

procedura programată pentru controlul respectivDblClick Se acţionează rapid de două ori pe butonul mouse-ului, declanşând

procedura programată pentru controlul respectivDragDrop Se apasă continuu butonul mouse-ului asupra unui control, se mişcă

mouse-ul şi apoi se eliberează butonulDragOver Se apasă continuu butonul mouse-ului asupra unui control şi se

deplasează mouse-ulMouseMove Se mişcă mouse-ul traversând peste un controlMouseDown Se acţionează un buton al mouse-ului asupra unui controlMouseUp Se eliberează un buton al mouse-ului de peste un controlKeyPress Acţionarea unei taste cifrice sau letrice şi eliberarea ei, sau

acţionarea concomitentă a unei asemenea taste împreună cu tasta ENTER sau CTRL

KeyDown Se acţionează (lung) o tastă asupra unui controlKeyUp Se eliberează o tastă asupra unui controlGotFocus Evidenţiază un obiect atunci când se execută clic pe suprafaţa luiLostFocus Un control este dezafectat, fie prin acţiunea operatorului (clic pe alt

control), fie atunci când se utilizează în program metoda SETFOCUS

Change Este evenimentul implicit pentru casetele de text. Se referă la schimbările pe care utilizatorul le poate aduce valorilor afişate. Mutând pointerul de înregistrare, acest eveniment afectează proprietatea valorii din caseta de text.

Scroll Permite “tragerea” cursorului de derulare în diverse ferestre care conţin o imagine mai mare decât dimensiunile proiectate ale ferestrei căreia i-au fost ataşate bare de derulare

Mediul interactiv de dezvoltareContine toate instructiunile necesare construirii aplicatiilor VB.Bara de meniuri - Cuprinde meniurile standard Windows (File, Edit, …) precum si meniuri cu comenzi specifice mediului de programare (Project, Debug, …).Bara cu instrumente (ToolBar) - Permite accesul la comenzile cele mai des folosite (New Project, Open File, Save Form, Cut, Copy, Paste, ..).Fereastra Form Design (Form1.vb [Design]) - Este un formular pe care programatorul proiecteaza controale. Un proiect poate avea unul sau mai multe formulare.Fereastra Solution Explorer - Cuprinde detaliile administrarii proiectului (formulare, module, fisiere).Fereastra cu proprietati (Properties) - Afiseaza valorile proprietatilor pentru formularul sau controlul curent.Caseta cu instrumente (ToolBox) - Contine pictograme folosite in proiectarea aplicatiilor pentru a desena controale pe formular, in scopul construirii interfetei cu utilizatorul.Fereastra pentru editarea codului (programul)Meniuri contextuale - Contine comenile rapide pentru actiuni utilizate frecvent. Meniul contextual se obtine executand clic dreapta pe obiectul respectiv.

Page 4: curs programarea calculatoarelor

Etapele de realizare a unui proiect

1. crearea interfetei programului cu utilizatorulVisual Basic .NET creeaza interfata cu utilizatorul prin furnizarea dintr-o caseta cu instrumente a unui set de controale care se pozitioneaza pe formular.Principalele controale :

eticheta (Label)  butonul de comanda (Button) caseta de text (TextBox)buton de optiuni (RadioButton)  caseta de validare (CheckBox)

caseta lista (ListBox) caseta combinata (ComboBox)

container de obiecte (GroupBox)bara de derulare orizontala (HScrollBar)bara de derulare verticala (VScrollBar)

Page 5: curs programarea calculatoarelor

2. Initializarea controalelor - posibilitati:a. initializarea controalelor, in faza de proiectare, in caseta cu proprietati a fiecarui control – se face manual, prin clic pe obiectul respectiv si modificarea in lista de proprietati a valorilor dorite, astfel:Exemplu: se construieste o aplicatie pentru calculul valorii; avem un formular, cu trei casete text simple, trei etichete (label-uri) si un buton de comanda..

OBIECT PROPRIETATE VALOARELabel1 Text cantitateLabel2 Text pretLabel3 Text valoareTextBox1 Text cantitateTextBox2 Text pretTextBox3 Text

TextAlignvaloareRight

Button1 Text startb. intr-o procedura LOAD a formularului – se da dublu click pe formular si, in fereastra de cod, se scrie urmatoarea secventa de program:

Private Sub Form1_Load(...) Handles MyBase.LoadLabel1.Text=”cantitate”Label2.Text=”pret”Label3.Text=”valoare”TextBox1.Text=” ”TextBox2.Text=” ”TextBox3.Text=” ”TextBox3.TextAlign=HorizontalAlignment.RightButton1.Text=”Start”

End Sub- deci, la declansarea evenimentului LOAD a formularului se deruleaza aceasta “initializare” a controalelor.c. intr-o procedura CLICK a unui buton de comanda – se insereaza in formular un buton de comanda, se da dublu clic pe acesta si se scrie in fereastra de cod urmatoarea secventa de program:

Private Sub Button1_Click(...) Handles Button1.ClickLabel1.Text=”cantitate”Label2.Text=”pret”Label3.Text=”valoare”TextBox1.Text=” ”TextBox2.Text=” ”TextBox3.Text=” ”TextBox3.TextAlign=HorizontalAlignment.RightButton1.Text=”Start”

End Sub- deci, la declansarea evenimentului CLICK a unui buton de comanda se deruleaza aceasta “initializare” a controalelor.3. executia programuluiSe executa clic pe butonul START din bara cu pictograme sau se alege optiunea START din meniul DEBUG. La clic pe un buton de comanda, VB.NET executa procedura Button1_Click si comenzile procedurii (se declanseaza evenimentul clic pentru a interactiona cu programul).4. crearea programului executabilPentru crearea programului executabil se executa clic pe sageata din dreapta cuvantului Debug si se selecteaza Release. In meniul Build apare o optiune Build-nume proiect. Se executa clic pe aceasta optiune si VB.Net inlocuieste versiunea de depanare cu una executabila.

Programarea aplicatiilor de tip CONSOLE => STRUCTURA MODULARA predefinita

Page 6: curs programarea calculatoarelor

Construirea programelor cu valori constante prin UTILIZAREA UNOR FUNCTII SISTEM

Functii uzuale:

Console.WriteLine( ) afisare mesaje pe terminalSintaxa generala: Console.WriteLine(“mesaj” [& variabila])

Console.ReadLine( ) mentine ecranul in asteptarea unui eveniment extern

Module Module1Sub Main( )

Dim nume As String = “Ionescu”Dim pren As String = “Ion”Console.WriteLine(“Numele meu este “ pren & “ “ & nume)Console.ReadLine( )

End SubEnd Module

OBS.: Concatenarea valorilor care compun linia editată a fost realizată prin operatorul “&”

Alte forme: Console.Write( ) afisare pe acceeasi linie Console.Read( ) lectura partiala a liniei (pana la primul spatiu)

Transmiterea parametrilor intre module si functii

Page 7: curs programarea calculatoarelor

“parametrizare oarbă” functie() Ex: Sub Main()“parametrizare semnificativă” specifica variabilele ale caror valori sunt transmise modulului apelat

Metode: - prin valoare (By Value)

Module Module1

Sub MARCA(ByVal M As Integer)M = 507Console.WriteLine(“marca este “ & M)

End SubSub NUME(ByVal NP As String)

NP = “Ion Ionescu”Console.WriteLine(“numele şi prenumele: “ & NP)

End SubSub SALARIU(ByVal SAL As Double)

SAL = 145.5Console.WriteLine(“salariul: “ & sal )

End SubSub Main( )

Dim M As IntegerDim NP As StringDim SAL As DoubleMARCA(M)NUME(NP)SALARIU(SAL)Console.ReadLine( )

End SubEnd Module

- prin adresa (By Reference)

Module Module1Sub MARIRESAL(ByRef SAL As Double)

SAL = 1145.5Console.WriteLine(“Salariul majorat este de “ & SAL)

End SubSub Main( )

Dim SAL As DoubleDim SALACTUAL As Double = 1045.5Console.WriteLine(“Salariul actual este “ & SALACTUAL)MARIRESAL(SALACTUAL)Console.ReadLine( )

End SubEnd Module

Declararea functiilor utilizator:

Page 8: curs programarea calculatoarelor

Function nume_functie AS tip_valoare_variabila_returnata

Module Module1Function NUME( ) As String

nume = “Ion Ionescu”End Function

Function SALARIU( ) As DoubleSALARIU = 1045.5

End Function

Sub Main( )Dim NUMELE As StringDim SAL As DoubleNUMELE = NUME( )SAL = SALARIU( )Console.WriteLine(“Numele: “ & NUMELE)Console.WriteLine(“Salariul: “ & SAL)Console.ReadLine( )

End SubEnd Module

Reguli:

- subrutinele apelate de către programul principal “Sub Main( )” trebuie instalate între liniile-sistemModule Modulen

. . . . . . . . . . . . Sub Main( )

- parametrii care se transmit programului principal (director) trebuie definiţi în cadrul subprogramelor apelate.

- apelul subprogramelor se poate realiza în cadrul programului principal prin simplul enunţ al numelui de subprogram şi prin parametrizare “oarbe”, cum ar fi spre exemplu: NUMELE = NUME( )

Page 9: curs programarea calculatoarelor

Programarea aplicaţiilor de tip CONSOLE prin utilizarea casetelor de dialog şi mesaje

Funcţia InputBox( ) introducere de date:

nume-variabilă=InputBox(“mesaj”[, “titlu”, valoare-implicita, Xpoz, Ypoz])- mesaj = textul mesajului adresat operatorului pentru introducerea de date- titlu = este titlul casetei de introducere a datelor- valoare-implicită = o valoare propusa de program ca raspuns implicit si care poate fi suprascrisa- Xpoz = poziţia (exprimată în pixeli) a coordonatei orizontale pe ecran- Ypoz = poziţia (exprimată în pixeli) a coordonatei verticale pe ecran

Sub Main( )Dim marca As IntegerDim nume As StringDim sal As Doublemarca = InputBox( “tasteaza marca”)nume = InputBox(“tasteaza numele şi prenumele”)sal = InputBox(“tasteaza salariul”)Console.WriteLine(“marca: “ & marca)Console.WriteLine(“numele şi prenumele: “ & nume)Console.WriteLine(“salariul: “& sal)Console.ReadLine( )

End Sub

Funcţia MsgBox( ) afişar de mesaje şi/sau rezultate pe terminal

MsgBox(“mesaj” [& variabila], buton, “titlu”)- mesaj = este mesajul necesar afişării pe ecran- variabila = este identificatorul variabilei a cărei valoare trebuie, eventual, afişată pe ecran- buton = afiseaza butoane de comandă (OK, Cancel, Retry etc.) şi unele simboluri de atenţionare (semnul exclamării, simbolul de informaţie, etc.) introduse prin identificatori (cu optiunea _MsgBoxStyle) sau prin valori. Când unul dintre argumente lipseşte, argumentele ulterioare vor fi precedate de virgule delimitative. De exemplu:

OKOnly . . . . . . . . . . 0OKCancel . . . . . . . . 1AbortRetryIgnore . . . 2YesNoCancel . . . . . . 3YesNo . . . . . . . . . . . .4RetryCancel . . . . . . . 5Critical . . . . . . . . . . . 16 (X)Question . . . . . . . . . . 32 (?)Exclamation . . . . . . . 48 (!)

Information . . . . . . . 64 (i)

Sub Main( )Dim marca As ByteDim numepren As StringDim orelucrate As IntegerDim salorar As DoubleDim deplata As Doublemarca = InputBox(“marca”)numepren = InputBox(“nume şi prenume”, “calcul drepturi”)orelucrate = InputBox(“ore lucrate”, , 40)salorar = InputBox(“salariul orar”, , , 120, 180)deplată = orelucrate * salorarMsgBox(“drepturile de plată sunt: “ & deplata,

_MsgBoxStyle.Information, “calcul drepturi de plată”)End Sub

Page 10: curs programarea calculatoarelor

Programarea structurilor logice fundamentale

Structurile secvenţiale (liniare)Secventa de program rezolva un singur caz.

Sub Main( )Dim numeben, denprod As StringDim cantliv As IntegerDim pret, vlr As Doublenumeben = InputBox(“tastati numele beneficiarului”)denprod = InputBox(“tastati denumirea produsului”)cantliv = InputBox(“tastati cantitatea livrata”)pret = InputBox(“tastati pretul de livrare”)vlr = cantliv * pretConsole.WriteLine(“Beneficiarul: “ & numeben)Console.WriteLine(“Produsul: “ & denprod)Console.WriteLine(“Valoarea livrata: “ & vlr)Console.ReadLine( )

End Sub

Structurile repetitive (iterative)

Executia repetata a unei secvente.

For ... Next

Sub Main( )Dim numeben, denprod As StringDim cantliv, contor As IntegerDim pret, vlr As DoubleFor contor = 1 To 15

numeben = InputBox(“tastati nume beneficiar”)denprod = InputBox(“tastati denumire produs”)cantliv = InputBox(“tastati cantitatea livrata”)pret = InputBox(“tastati pret livrare”)vlr = cantliv * pretConsole.WriteLine(“beneficiarul: “ & numeben)Console.WriteLine(“produsul: “ & denprod)Console.WriteLine(“valoarea livrata: “ & vlr)Console.ReadLine( )

NextEnd Sub

Page 11: curs programarea calculatoarelor

While ... End While (contorizat)

Module Module1Sub rutina( )

. . . . . . . . . .

. . . . . . . . . .End Sub

Sub Main( )Dim contor as byte = 1Dim nrtotal as byte = 25While contor <= nrtotal

rutina( )contor += 1

End WhileEnd Sub

End Module

While ... End While (necontorizat)

Module Module1Sub rutina( )

. . . . . . . . . .

. . . . . . . . . .End Sub

Sub Main( )Dim danu As Stringdanu = InputBox(“doriti sa lucrati? da/nu”)While Ucase(danu) = “DA”

rutina( )danu = InputBox(“Doriti sa continuati procedura? da/nu”)

End WhileMsgBox(“procedura s-a incheiat”)

End SubEnd Module

Page 12: curs programarea calculatoarelor

Structurile alternative (selective)

IF … END IF

Module Module1Sub Main( )

Dim nb, dp As StringDim cc, cl, dif As IntegerDim danu As String = “DA”While Ucase(danu) = “DA”

nb = InputBox(“tasteaza nume beneficiar”)dp = InputBox(“tasteaza denumire produs”)cc= InputBox(“tasteaza cantitate contractata”)cl = InputBox(“tasteaza cantitatea livrata”)If cc > cl Then

dif = cc - clConsole.WriteLine(“diferenta datorata

_beneficiarului “ & nb & “la produsul “ _& dp & “ este de “ & dif)

End Ifdanu = InputBox(“mai lucrati? da/nu”)

End WhileMsgBox (“lucrare finalizata”)

End SubEnd Module

Page 13: curs programarea calculatoarelor

IF Then …Else ... END IF

Module Module1Sub Main( )

Dim nb, dp As StringDim cc, cl, dif As IntegerDim danu As String = “DA”While Ucase(danu) = “DA”

nb = InputBox(“tasteaza nume beneficiar”)dp = InputBox(“tasteaza denumire produs”)cc= InputBox(“tasteaza cantitate contractata”)cl = InputBox(“tasteaza cantitatea livrata”)If cc > cl Then

dif = cc - clConsole.WriteLine(“diferenta datorata _beneficiarului “ & nb & “ la produsul

_“ & dp & “ este de “ & dif)Else

dif = cl - ccConsole.WriteLine(“diferenta

livrata în _plus beneficiarului “ & nb & “ la produsul “ & dp & “ este de “ & dif)

End Ifdanu = InputBox(“mai lucrati? da/nu”)

End WhileMsgBox(“lucrare finalizata”)

End Sub

Page 14: curs programarea calculatoarelor

Structura alternativă cu mai multe ramuri (imbricată) IF THEN ... ELSE IF THEN ... ELSE ...

Module Module1Sub Main( )

Dim np As StringDim ore As ByteDim sal, drept As DoubleDo

np = InputBox (“Tastati numele”)sal = InputBox (“Tastati salariul negociat”)ore = InputBox (“Tastati numarul de ore contractat”)If ore = 2 Then

drept = sal * 0.25ElseIf ore = 4 Then

drept = sal * 0.5ElseIf ore = 6 Then

drept = sal * 0.75ElseIf ore = 8 Then

drept = salElseIf ore = 10 Then

drept = sal * 1.5ELSE

MsgBox(“nr.ore nu e în standarde. Reveniti”)MsgBox(“Consideram drepturi egal cu zero”) drept = 0

End IfConsole.WriteLine(“salariatul “ & np & _

“ are un drept de “ & drept)Loop While MsgBox(“continuati lucrarea?”, _

MsgBoxStyle.YesNo) = MsgBoxResult.YesEnd Sub

End Module

Page 15: curs programarea calculatoarelor

SELECT CASE – structuri alternative difuzate

Module Module1Sub Main( )

Dim dp As StringDim disp As LongDo

dp = InputBox(“tastati denumire produs”)disp = InputBox(“tastati disponibil în stoc”)Select Case disp

Case Is < 50000MsgBox(“disponibil insuficient”, _

MsgBoxStyle.Critical, dp)Case 50000 To 74999

MsgBox(“este acoperita oferta 1”, _MsgBoxStyle.Information, dp)

Case 75000 To 99999MsgBox(“este acoperita oferta 2”, _

MsgBoxStyle.Information, dp)Case Is > 1000000

MsgBox(“suficient pentru oferta 3”, _MsgBoxStyle.Information, dp)

End SelectLoop Until MsgBox(“continuati cazurile?”, MsgBoxStyle.YesNo) = MsgBoxResult.No

End SubEnd Module

Page 16: curs programarea calculatoarelor

PROGRAMAREA APLICAŢIILOR DE TIP “WINDOWS”

Aplicaţiile de tip “Windows” oferă utilizatorului suprafaţa unui for-mular pentru dirijarea programului.Pe suprafaţa formularului se pot instala diverse “controale”, prin a căror accesare pot fi generate

subprogramele unei aplicaţii mai complexe. Formularul purtător de controale devine interfaţa sistemului cu utilizatorul.

Proiectarea unui formular necesită accesarea pictogramei “Windows Application” din caseta de dialog “New Project”.

Având în vedere necesitatea de includere a controalelor pe suprafaţa formularului, trebuie să fi prezentă pe ecran cutia cu instrumente (ToolBox). Dacă aceasta lipseşte, se poate apela prin opţiunea “ToolBox” din meniul View.

NOTĂ: După cum s-a mai precizat, caseta cu instrumente cuprinde mai multe pictograme (în unele versiuni 47), care în momentul plasării lor pe formular devin aşa-numitele “controale” ale aplicaţiei.

Principalele proprietăţi ale acestora au fost prezentate în &.3.2.2. În continuare, vor fi oferite amănunte la nivelul aplicaţiilor în care se vor utiliza diversele controale

Controale V.B.Net

Pictogramele existente în cutia cu instrumente (ToolBox) constituie obiecte programabile. Fiecare asemenea obiect poate formula un subprogram din cadrul aplicaţiei, în momentul în care desemnează un control. “Controlul” este oricare pictograma din cutia cu instrumente, în momentul în care aceasta este “trasă” (dragată) pe cadrul formularului. Pentru a putea fi translatată pe formular, pictograma este accesată cu mausul şi apoi, prin trasare continuă, i se formează un cadru pe formular. După declic, pe formular rămâne imaginea controlului selectat anterior. Unele imagini cuprind întreg chenarul format prin trasarea mausului, altele (de exemplu ComboBox, DateTimePicker s.a.) ocupă un spaţiu limitat, standardizat de către sistem.

În sistemul V.B.Net există 48 de controale posibile. În continuare, ne propunem prezentarea celor mai des utilizate, relevând, totodată, principalele lor caracteristici. În mod convenţional, vom stabili următoarea terminologie alături de semnificaţia fiecăreia:

- prin “rol” se vor prezenta principalele funcţii pe care le pot îndeplini;- prin “modul implicit de afişare” se vor prezenta elementele specifice de afişare pe suprafaţa formularului;- prin “principalele proprietăţi” vor fi enunţate acele atribute ale obiectului asupra cărora intervin, de obicei,

utilizatorii.În momentul proiectării controalelor pe formular, sistemul V.B.net acordă denumiri, titularizări şi moduri

de afişare implicite pentru anumite controale:- “Denumirea” este numele acordat de sistem fiecărui control, la nivelul proprietăţii NAME. A fost

specificată anterior necesitatea de a acorda o denumire-utilizator fiecărui obiect, în vederea accesării independente a acestor obiecte, în cadrul unei aplicaţii. În cazul în care proiectantul nu personalizează astfel controalele pe care le utilizează, sistemul le va numerota printr-o denumire implicită. De exemplu: Button1, Button2, etc.

- “Titulatura” corespunde proprietăţii TEXT, care, în cazul nepersonalizării controalelor, sistemul o formulează identic cu proprietatea NAME (în marea majoritate a cazurilor). În cazul titulaturii, proiectarea controalelor trebuie să aibă în vedere facilităţile necesare oricărei interfeţe cu utilizatorul. Aceasta înseamnă că este totdeauna utilă o titulare din partea proiectantului, printr-o formulare cât mai apropiată de scopul pentru care controlul în cauza a fost inclus în formular.

De exemplu, un buton de comandă a cărui scop este de a declanşa un subprogram prin care se calculează impozitul pe salariu, poate rămâne cu proprietatea NAME - “button1”, dar este indicat ca să i se acorde titulatura “calcul impozit”.

Page 17: curs programarea calculatoarelor

Astfel, în cadrul programului, acest buton de comandă va putea fi manipulat prin identificatorul “button1”, dar accesarea subprogramului de către operator va putea fi obţinută prin clic (sau alt eveniment) pe acel buton de comandă pe suprafaţa căruia este înscrisă titulatura “calcul impozit”.

- “Modul de afişare” reprezintă figura grafică a obiectului pe formular, însoţită de titulatura implicită.

NOTĂ: Atâta timp cât unele proprietăţi corespund mai multor controale, atunci când vor fi expuse principalele proprietăţi ale acestora, vor fi explicitate numai pentru primul caz de utilizare. Pentru următoarele cazuri în care mai apare o aceeaşi proprietate - aceasta se va specifica, fără a i se mai oferi explicaţii detaliate.

În virtutea celor explicate anterior, nu se vor mai expune explicaţii privind proprietăţile “visible”, “enabled”, proprietăţile de poziţionare şi dimensionare, cele coloristice, proprietatea “tabindex”, asupra cărora s-au oferit explicaţii în paragraful precedent.

În figura 3.10. este prezentată o secvenţă din cutia cu instrumente (ToolBox), având în conţinut câteva dintre cele 48 de controale utilizate în programarea aplicaţiilor de tip Windows - V.B.Net.

Controlul POINTER:Rolul acestuia este de a transfera şi/sau de a redimensiona alte controale anterior transpuse în formular. Nu

are denumire sau titulatura implicite şi nu generează nici o formă geometrică pe formular

Controlul LABEL:Rolul sau este de a afişa un text solicitat de proiectant. Acest text nu poate fi modificat ulterior, decât prin

program. Textele afişate servesc că etichete pentru diversele imagini sau alte controale proiectate pe formular, sau pentru afişarea de mesaje, că răspuns la un eveniment oarecare.

Page 18: curs programarea calculatoarelor

Modul implicit de afişare este o arie trasată de către proiectant, conţinând titulatura LABEL1.Principalele proprietăţi vizează posibilităţile de încadrare a unui text sau a unei imagini.

- BORDERSTYLE determină tipul de chenar al etichetei. Chenrul poate fi:- NONE - fără chenar- FIXED SINGLE - chenar dintr-o singură linie;- FIXED 3D - chenar spaţial.

- AUTOSIZE prin care se poate mări spre dreapta marginea etichetei pentru a cuprinde textul scris pe orizontală. Pentru a mări automat laţimea ariei, valoarea proprietăţii trebuie să fie comutată la TRUE.

- FONT stabileşte tipul caracterelor care prezintă textul inclus în cadrul etichetei şi dimensiunea lor.- IMAGE este urmată de puncte de suspensie. Executând clic pe aceste puncte de suspensie, se va putea

opta pentru o imagine propusă de sistem, imagine care va fi încadrată între limitele etichetei.- TEXTALIGN oferă nouă posibilităţi de plasare a textului în cadrul etichetei: TopLeft (în coltul de sus-

stânga), TopCenter (în centru-partea superioară), TopRight (în colţul de sus-dreapta), MiddleLeft (în mijlocul vertical al etichetei, cadrat la stânga), MiddleCenter (în mijlocul vertical al etichetei, cadrat central), MiddleRight (în mijlocul vertical al etichetei, cadrat la dreapta), BottomLeft (în colţul jos-stânga), BottomCenter (în centru - partea inferioară), BottomRight (în colţul jos-dreapta).

Controlul TEXTBOX:Rolul său este de a afişa texte introduse de proiectant sau texte incluse prin program. Casetele de text

(TextBox) sunt deosebit de utile în programele care recepţionează date elementare în timpul execuţiei şi date rezultate din diverse operaţii programate.

Modul implicit de afişare este constituit din chenarul trasat pe formular, dar redus iniţial de sistem în anumite limite standard.

Principalele proprietăţi:- MULTILINE este proprietatea prin care casetele de text pot înmagazina mai multe rânduri de text. În

momentul în care valoarea acestei proprietăţi este comutată la TRUE, dimensiunile verticale standard ale casetei proiectate se dezvoltă la nivelul trasat iniţial de către proiectant.

- TEXTALIGN - are valorile “left”, “center”, “right”. Acestea semnifică modul în care va fi cadrat textul înscris în caseta (din marginea stânga, în centru, din marginea dreaptă).

- BORDERSTYLE

- SCROLLBARS este proprietatea prin care sistemul poate adăuga bare de derulare casetei de text, atunci când, fie pe orizontală, fie pe verticală, textele depăşesc cadrul iniţial al casetei. Opţiunile sunt: “horizontal”, “vertical”, “both”, prin care se adaugă casetei bare de derulare orizontale, verticale sau ambele. De reţinut ca barele de derulare orizontale şi ambele bare de derulare nu funcţionează decât dacă proprietatea TextAlign are valoarea “left”.

- MAXLENGTH defineşte numărul maxim de caractere posibil a fi afişate într-o casetă de text (între 1 - 32767 caractere).

- FONT oferă posibilitatea de a alege tipul caracterelor prin care se vor înscrie textele în cadrul casetei.

Controlul GROUPBOX:Rolul său este de a grupa diverse obiecte într-o casetă. Pentru această cuprindere a altor controale, se

recomandă iniţial trasarea cadrului GroupBox şi apoi includerea de alte obiecte. Rezultatul înglobării altor controale este acela că, dorind să se transfere toate obiectele astfel înglobate într-o zonă a formularului, este suficientă mutarea cadrului pentru toate cele pe care le cuprinde.

Page 19: curs programarea calculatoarelor

Modul implicit de afişare este cadrul trasat de proiectant, însoţit de titulatura GroupBox1 (sau oricare număr nepersonalizat).

Principalele proprietăţi nu vizează decât pe cele fundamentale (NAME, TEXT, FONT, etc.).

Controlul BUTTON:Rolul butoanelor de comandă constituie cea mai uzitată formă de a genera diverse proceduri. Având în

vedere simplitatea imaginii şi posibilitatea de a intitula divers aceste imagini, utilizatorii preferă proiectarea butoanelor de comandă faţă de alte “declanşatoare” de proceduri. Fiind destinate în mod direct accesării procedurilor prin simpla acţionare a mausului, butoanele de comandă mai sunt numite “push button”.

Modul implicit de afişare este o forma dreptunghiulară sau pătrată, conform preferinţelor utilizatorului, având titulatura Button1 (sau oricare număr nepersonalizat).

Principalele proprietăţi au în vedere, în acest caz, frecvenţa de utilizare a acestui obiect la nivelul aceluiaşi formular. Aceasta înseamnă prudenţă în alegerea denumirii şi titulaturii diverselor butoane de comandă,în sensul că aceste două proprietăţi (NAME şi TEXT) trebuie să fie inconfunzibile faţă de altele, pe de o parte şi, pe de altă parte, să fie cât mai sugestive pentru operator. Elementul sugestiv poate necesita, uneori, utilizarea unor etichete care să însoţească imaginea butonului de comandă, cu toate că, prin proprietatea TEXT se are în vedere o titulatură corespunzătoare.

- CANCELBUTTON este o proprietate de excepţie pentru acest control. Prin aceasta se permite activarea unui alt buton de comandă, dacă se va acţiona tasta ESC.

Controlul CHECKBOX:Rolul său consta în validarea unei anumite opţiuni (sau a mai multora). Din acest motiv, se mai numeşte

“caseta de validare”. Opţiunile sunt de tipul “adevărat/fals”, adică “accesat/neaccesat”. Diversele evenimente sau acţiuni din timpul execuţiei aplicaţiei pot afecta selecţia unei casete de validare.

Modul implicit de afişare este chenarul trasat de proiectant, în cadrul căruia există un pătrat cu sau fără bifă în interiorul său. Are titulatura CheckBox1. Bifa există pentru situaţia TRUE (accesat) şi nu există pentru cazul invers.

Principalele proprietăţi sunt determinate de starea controlului în program. Testarea stării controlului poate fi utilizată în conţinutul unei proceduri, în vederea execuţiei unei acţiuni.

- CHECKED are două valori posibile: TRUE şi FALSE. Valoarea TRUE impune existenţa bifei în cadrul pătratului, valoarea FALSE elimină bifa.

- CHECKSTATE exprimă starea casetei de validare şi este determinată de valoarea proprietăţii “Checked”. Proprietatea “CheckState” are trei valori: checked, unchecked şi indeterminate. Valoarea “checked” corespunde valorii “True” a proprietăţii “Checked”. Valoarea “Unchecked” corespunde valorii “False” a proprietăţii “Checked”. Valoarea “Indeterminate” corespunde valorii “True” a proprietăţii “Checked”, dar în mod selectiv şi anume atunci când soluţia validării este posibilă.

- APPEARANCE are două valori: “Normal” şi “Button”. Valoarea “Normal” corespunde afişării casetei de validare ca atare, cu sau fără bifă. Valoarea “Button” transformă caseta de validare în imaginea unui buton de comandă.

- TABSTOP poate avea valorile TRUE şi FALSE. Valoarea “True” se foloseşte atunci când se doreşte activarea în ordine a casetelor de validare prin tasta TAB, caz în care se cere ca, iniţial, o singură casetă să fie bifată.

Controlul RADIOBUTTON:Rolul acestui control este similar celui anterior. Identic casetelor de validare, butonul-radio obţine validarea

unei anumite opţiuni. Diferit de casetele de validare, prin butonele-radio nu se poate accesa decât o singură variantă dintre cele proiectate. Din acest motiv aceste butoane se numesc “radio”, adică în momentul accesării unui

Page 20: curs programarea calculatoarelor

buton, oricare altul ar fi fost selectat anterior se va deselecta automat (identic butoanelor care servesc schimbării lungimilor de undă radio).

Modul implicit de afişare este cel trasat de proiectant, având în interior un cerculeţ cu sau fără punct central. Titulatura implicită este “RadioButton1”.

Principalele proprietăţi sunt identice cu cele ale casetelor de validare:- APPEARANCE- CHECKED- TABSTOP ş.a.

Controlul LISTBOX:Rolul casetei lista este acela de a cuprinde diverse articole opţionale, dintre care utilizatorul să poată alege

oricare dintre aceste articole. Fiecare articol poate genera o procedură. Oricare articol cuprins în lista este accesibil utilizatorului. Articolele pot fi incluse prin proprietatea “Items”. Aria rezervată prin proiectare pentru caseta lista poate fi neîncăpătoare pentru numărul de articole solicitat de proiectant. În asemenea caz, sistemul adaugă în mod automat o bară de derulare verticală. În cazul în care dimensiunea articolelor depăşeşte capacitatea orizontală a ariei prevăzută de către proiectant, se poate proiecta ataşarea unei bare de derulare orizontale.

Modul implicit de afişare este aria trasată de către proiectant, având titulatura iniţială “ListBox1”.Principalele proprietăţi sunt:- ITEMS: Este proprietatea prin care se pot include iniţial articole în caseta-listă. Opţiunea acestei

proprietăţi este “Collection”, după care urmează puncte de suspensie. Prin clic pe punctele de suspensie, sistemul

afişează fereastra “String Collection Editor”. În această fereastră se vor include articolele considerate necesare drept conţinut al listei. Articolele incluse sunt considerate implicit şir de caractere. După culegerea tuturor articolelor, se execută clic pe butonul OK al ferestrei şi toate articolele vor fi preluate în aria casetei-listă. În cazul în care numărul articolelor depăşeşte capacitatea verticală a ariei casetei, sistemul adaugă, în mod automat, o bară de derulare verticală.

- HORIZONTALSCROLLBAR este o proprietate cu valori booleene (True/False), implicită este valoarea False. În cazul în care unele articole au un număr de caractere care depăşesc capacitatea orizontală a casetei, se va comuta valoarea acestei proprietăţi la “True”. Astfel, casetei-listă i se adaugă o bară de derulare orizontală, necesară lecturii articolelor de o lungime mai mare.

- MULTICOLUMN oferă posibilitatea de excludere a barei de derulare verticale. Proprietatea are valoarea implicită “False”. Comutată fiind la valoarea “True”, sistemul separă, prin coloane, numărul articolelor incluse, fiind necesară numai bara de derulare orizontală, pentru citirea articolelor din coloanele listei.

- SCROLLALWAYSVISIBLE oferă posibilitatea de a nu fi vizibile barele de derulare, decât în cazurile în care sunt necesare lecturii articolelor.

- SORTED are funcţia de a sorta articolele în ordine alfabetică. Pentru aceasta, proprietatea “Sorted” trebuie comutată la valoarea “True”.

- TABSTOP

Controlul COMBOBOX:Rolul acestui control este asemănător cu cel al casetelor-listă (ListBox). Casetele combinate (ComboBox)

oferă aceleaşi posibilităţi de validare ca şi butoanele-radio, dar pot îngloba mai multe alternative, conform

Page 21: curs programarea calculatoarelor

posibilităţilor casetelor-listă). Deosebirea operaţională între casetele-listă şi casetele-combinate constă în aceea ca în casetele-listă sunt vizibile toate articolele introduse, deosebit de casetele-combinate în care nu se vede decât titlul casetei, articolele fiind ascunse. Din ac Modul implicit de afişare este standardizat de sistem, indiferent de de aria trasată de proiectant. Cadrul se reduce la dimensiunile necesare afişării titulaturii casetei (iniţial ComboBox1). În plus, există o săgeata de derulare verticală, prin care se pot vizualiza articolele incluse în listă.

Principalele proprietăţi sunt asemănătoare cu cele ale casetelor-listă.- ITEMS - proprietate necesară includerii articolelor în listă. Includerea are loc prin acelaşi procedeu

specificat anterior: se execută clic pe punctele de suspensie care însoţesc valoarea “Collection” a proprietăţii.- SORTED- TABSTOP- ş.a.

Controlul HSCROLLBAR:Rolul controlului este de a figura o bară de derulare orizontală. Scopul acestora este de a parcurge listele cu

un cuprins vast de articole. Bara de derulare orizontală are rol similar cu cea din mediul Windows, derulând pe orizontală elementele înscrise pe o linie editată. Indică poziţia pe care o ocupă un anumit element afişat în cadrul unei linii de editare sau poziţia unei valori într-un vector. Aspectul unei bare de derulare orizontală este un dreptunghi (dispus orizontal) al cărui limite (dreapta şi stânga) sunt delimitate de pointerii de derulare. Între aceste limite glisează un cursor care indică locul ocupat de articolul (elementul) curent în cadrul mulţimii care se derulează.

Modul implicit de afişare constă în dimensiunile trasate de către proiectant (un dreptunghi), fără a exista o titulatura iniţială. Dreptunghiul (considerat un ax) este delimitat de pointerii de derulare (), între care există cursorul.

Principalele proprietăţi :- MINIMUM şi MAXIMUM au, implicit, valorile 0, respectiv 100. Aceste valori (sau oricare altele

specificate de către proiectant) determina intervalul între care va glisa cursorul (numărarea cazurilor).- LARGECHANGE fixează numărul de “paşi” pe care îl va executa cursorul între cele două limite ale

axului, în funcţie de valorile date proprietăţilor minimă şi maximă. De exemplu, dacă valoarea proprietăţii “Maximum” este fixată la “14”, dacă valoarea proprietăţii “Minimum” este fixată la “2” şi dacă valoarea proprietăţii “LargeChange” este fixată la “3”, est punct de vedere, casetele-combinate nu ocupă spaţiu excesiv pe suprafaţa formularului. În timpul execuţiei, pentru a putea vizualiza articolele incluse în listă, se va accesa săgeata de derulare verticală care apare totdeauna în dreapta titulaturii casetei.

cursorul va efectua patru paşi între cele două extreme, atunci când se execută clic pe suprafaţa axului (14 - 2 = 12 : 3 = 4).

- SMALLCHANGE nu poate depăşi valoarea lui LargeChange şi fixează, de asemenea, un astfel de increment, dar acţionează atunci când se execută clic pe pointerii de derulare.

- VALUE specifică poziţia iniţială a cursorului pe ax. Valoarea acestei proprietăţi trebuie să fie cuprinsă în intervalul valorilor proprietăţilor SmallChange şi LargeChange. Valoarea proprietăţii Value marchează punctul de plecare a cursorului în intervalul proiectat (de exemplu, conform algoritmului precedent, de la pasul “1’, adică valoarea “2”, de la pasul “2’, adică valoarea “5”, etc.

Controlul VSCROLLBAR:Are aceleaşi caracteristici esenţiale cu controlul HScrollBar, prezentând, însă, o bară verticală de derulare.

Controlul DATETIMEPICKER:Rolul este de a prezenta data curentă.

Page 22: curs programarea calculatoarelor

Modul implicit de afişare este standard şi cuprinde data curentă (ziua - luna - data - anul). În momentul execuţiei, afişează (prin derulare verticală) calendarul lunii curente. În partea superioară a imaginii există pointeri de derulare orizontală. Prin accesarea acestora sistemul afişează calendarul lunilor următoare sau a celor precedente.

Principalele proprietăţi sunt specifice datelor calendaristice:- MAXDATE - implicit data calendaristică 12/31/9998- MINDATE - implicit data calendaristică 1/1/1753- VALUE - data calendaristică curentă.

Controlul MONTHCALENDAR:Este similar controlului precedent, cu excepţia faptului că afişează întreaga arie trasată de către proiectant. În

cadrul acestei arii afişează calendarul lunar curent. Proprietăţile sunt identice şi, de asemenea, pointerii de derulare orizontală, prin care se obţin calendarele lunilor anterioare şi viitoare.

NOTĂ: Reamintim că proprietăţile expuse în acest paragraf nu epuizează întreg arsenalul controalelor. Pe de altă parte, trebuie avute în vedere, în primul rând, proprietăţile cu caracter general, specificate în cadrul &.3.2.1.


Recommended