Sunteți pe pagina 1din 15

3.

MEDII VIZUALE DE PROGRAMARE ORIENTATE


OBIECT
3.1. Introducere în C++ Builder

C++ Builder este un mediu de programare vizual, orientat pe obiect, pentru crearea rapidă a
unor aplicaţii uşor de manevrat, cu scop general, destinate sistemelor de operare din familia Windows. O
facilitate deosebită permisă de acest mediu de programare este aceea că aplicaţii dintre cele mai complexe pot
fi create scriind un minim de cod, iar pentru anumite aplicaţii simple nici nu este nevoie de tastatură deoarece
codul programului poate fi generat numai cu ajutorul mouse-ului.
Un avantaj al folosirii sistemului C++ Builder este acela că el creează direct fişiere
executabile, care pot fi lansate în execuţie chiar şi în cazul în care pe calculatorul respectiv nu este instalat
acest mediu de programare.
C++ Builder conţine peste 100 de componente utilizate în dezvoltarea aplicaţiilor care sunt
organizate în diferite pagini. Componentele pot fi vizuale sau nevizuale. O componentă este vizuală dacă ea
este sau va fi vizibilă în timpul execuţiei programului (de exemplu butoane, linii de editare). O componentă
este nevizuală dacă în perioada de elaborare a proiectului ea apare pe formă, dar în momentul execuţiei devine
invizibilă (de exemplu ceasul sistemului).
Există componente care sunt invizibile până în momentul în care sunt apelate prin diferite metode, ca
de exemplu ferestrele standard de dialog. Fiecare componentă a acestui mediu de programare este prevăzută
cu diferite atribute prin care se permite controlul ei în proiectare şi în execuţie. Componentele pot fi prevăzute
şi cu diferite metode prin care se poate coordona comportarea componentei în momentele în care se
declanşează un anumit eveniment (de exemplu efectuarea unui clic cu mouse-ul pe componenta respectivă).

Realizarea unei interfeţe grafice


O interfaţă grafică utilizator are două părţi separate. Ea utilizează rutine grafice complexe pentru a
afişa (şi restaura) imagini pe ecranul calculatorului. O altă caracteristică a unei GUI este aceea că ea
controlează comportamentul mouse-ului şi a altor dispozitive de intrare pe suprafaţa grafică. Toate detaliile de
programare sunt ascunse programatorului, ele fiind implementate de către sistemul de operare. Ca
programator nu trebuie să ştim cum sunt implementate funcţiile care permit utilizarea mouse-ului, a tastaturii
ş.a.m.d. Pentru a crea interfaţa grafică a fiecărui program există API (Application Programming Interface).
Există multe diferenţe între programele ce folosesc GUI şi programele ce rulează în fereastra DOS.
Cu toate că în ambele variante programul porneşte dintr-un anume punct, există multe alte diferenţe.
Programele rulate în fereastră DOS nu afişează imagini grafice, astfel că au intrarea utilizator dată de către
programator de la început. Secvenţa de operaţii este stabilită de la început de către programator şi utilizatorul
nu poate interveni.
Cu aplicaţiile GUI, utilizatorul poate opta asupra secvenţei pe care o va parcurge programul. Se pot
introduce meniuri prin care utilizatorul selectează diverse acţiuni.
Tratarea evenimentelor
Într-un program cu suprafaţă GUI, toate componentele aşteaptă anumite evenimente (click-uri de mouse,
apăsări de taste, etc.). Aceste tipuri de evenimente sunt considerate evenimente externe. Există însă şi alte
tipuri de evenimente generate intern de către sistemul de operare, ca de exemplu ceasul intern, interacţiunea
cu alte programe în cazul programării concurente, etc.
Programul răspunde la aceste tipuri de evenimente utilizând un handler de eveniment (event handler). Un
handler de eveniment este o porţiune de cod care nu face altceva nimic decât să aştepte producerea unui
eveniment.

3.2. Ce este C++ Builder?


Dacă dorim o scurtă definiţie, C++ Builder este versiunea RAD (Rapid Application
Development) a mediului Borland C pentru Windows. Acesta pune la dispoziţie o interfaţă îmbunătăţită şi
multe trăsături automatizate, care facilitează dezvoltarea aplicaţiilor.
C++ Builder este un mediu de programare vizual, orientat obiect, pentru dezvoltare rapidă de
aplicaţii (RAD) cu scop general şi aplicaţii client/server pentru Windows. Folosind C++ Builder puteţi
crea aplicaţii Windows eficiente scriind un minim de cod.
Facilităţile folosite de acesta sunt :

 Înalta productivitate a mediului de dezvoltare

Mediul de dezvoltare integrat (IDE) C++ Builder furnizează :


- Visual Form Designer;
- Object Inspector;
- Component Palette;
- Project Manager;
- un editor ;
- un depanator.
care dau posibilitatea utilizatorului să dezvolte rapid aplicaţi având totodată un control complet
asupra codului şi resurselor.

 Proiectarea drag-and drop


Utilizatorul poate crea aplicaţii prin simpla “tragere” a componentelor din Component Palette pe
Form Designer şi apoi setarea proprietăţilor din Object Inspector. Handler-ele de evenimente sunt
automat create, iar codul lor este complet accesibil. Acest mod de proiectare a unei aplicaţii nu
restricţionează în nici un fel accesul programatorului la codul sursă, o aplicaţie putând fi scrisă şi fără
a folosi componente vizuale.

 Proprietăţi, metode şi evenimente

Dezvoltarea rapidă a aplicaţiilor înseamnă support pentru proprietăţile, metodele şi


evenimentele obiectelor (PME). Proprietăţiile permit setarea uşoară a caracteristicilor componentelor.
Metodele execută acţiuni asupra obiectelor. Evenimetele permit ca aplicaţia să răspundă la mesajele
Windows, sau la schimbări de stare a obiectelor. Folosirea modelului PME furnizează un robust şi
intuitiv mediu de dezvoltare pentru aplicaţii Windows.

 C++ Builder Help

Mediul C++ Builder oferă un ghid practic, care conţine peste 3000 de pagini de
documntaţie despre IDE, VCL, baze de date şi tehnici de programare.

 Codurile sursă pentru VCL

C++ Builder pune la dispoziţie codurile sursă pentru VCL, furnizând astfel o unică privire
înăuntrul modului în care C++ Builder lucrează.
VCL furnizează peste 100 de componente reutilizabile care ajută programatorul să construiască
aplicaţii robuste într-un timp scurt. Aceste componente pot fi modificate pentru a corespunde necesităţilor
din cele mai diverse. C++ Builder include o suită completă de controale Windows : TreeView, Trackbars,
PregressBars, Toolbars, RichEdit, ListViews, ImageLists, StatusBar etc. Totodată C++ Builder
include suport pe 32 de biţi pentru numele lungi de fişiere.

Elementele mediului de dezvoltare (IDE) C++ Builder sunt :


A. Main Menu

File pentru a deschide, crea, salva, inchide project-uri şi fişiere.


Edit pentru prelucrarea de texte şi componente.
Search pentru localizare text, erori, obiecte, variabile, unit-uri,… în editorul de cod.
View pentru a afişa, sau ascunde elemente ale mediului .
Project pentru a compila aplicaţia.
Run pentru a executa şi depana o aplicţie.
Component pentru a crea sau instala o componentă.
DataBase pentru manipulare de baze de date
Tool pentru a rula programele utilitare disponibile, fără a părăsi C++ Builder.
Options pentru a controla comportamentul mediului de dezvoltare.
Help pentru a obţine ajutor.

B. Forma

Întreaga parte vizibilă a unei aplicaţii este construită pe un obiect special numit formă (ca cea din
figura următoare). O formă liberă este creată de fiecare dată când este lansat în execuţie mediul C++ Builder.
O aplicaţie poate avea mai multe forme. Adăugarea unei noi forme unei aplicaţii se face selectând comanda
New Form din meniul File. Pe formă se pot aşeza şi aranja componente vizuale şi non-vizuale care alcătuiesc
interfaţa cu utilizatorul. Fiecărei forme îi sunt asociate două fişiere cu extensiile .cpp şi .h (în cazul formei de
mai sus unit1.CPP, unit1.h ).

C. Code Editor

Ca orice limbaj de programare C++ Builder are o fereastră unde programatorul poate scrie codul
unei aplicaţii. Aceasta este un editor ASCII complet şi poate deschide mai multe fişiere simultan.
D. Toolbar-ul

Toolbar-ul, nu este altceva, decât o scurtătură la comenzile aflate în MainMenu. În varianta implicită
comenzile pe care le conţine sunt cele specificate în figura de mai jos.

Save all Open project


Save Add file to project
Open Add file to project
New Help

View unit

View form Step over


Comutare unit/form
New form Run Pause Trace into

E. Paleta cu componente

Mai întâi să definim noţiunea de componentă. Componentele sunt elemente pe care le folosiţi pentru
a creea aplicaţii C++ Builder. O componentă este de fapt un element de tip UI (user interface). Pot fi vizuale
(de exemplu butoanele, cutiile de dialog), sau pot fi non-vizuale (de exemplu timer-ul). Spunem despre o
componentă că este vizibilă, sau va fi vizibilă la momentul execuţiei, iar o componentă este non-vizuală dacă
la momentul proiectării aplicaţiei apare pe formă ca un desen, iar la momentul execuţiei aplicaţiei devine
invizibilă. Fiecare componentă are atribute care permic controlul aplicaţiei. Componentele sunt grupate pe
pagini. O componentă specială este şi forma care are ataşate proprietăţi, metode, evenimente..
Programatorul poate crea noi componente şi pagini de componente.

F. Object inspector

Object inspector face legătura dintre interfaţa aplicaţiei şi codul scris de programator şi are două funcţii :
a. setează proprietăţile componentelor de pe formă
b. crează şi ajută la navigarea printre handler-ele de evenimente. Un handler de evenimente se execută
în momentul în care apare un eveniment (apăsarea unei taste, un click de mouse, etc.).
În partea de sus se află Object selector care conţine toate componentele de pe formă împreună cu
tipul lor.
Object inspector are două pagini:
a. Properties page
Această pagină setează proprietăţile unei componente şi anume, dimensiunile ei, poziţia în cadrul
formei, fonturi folosite, numele ei, etc. Alte proprietăţi pot fi setate în timpul execuţiei programului.
b. Event page
Această pagină permite legarea unei componente la evenimentele programului. Prin executarea unui
dublu click pe unul dintre evenimente C++ Builder crează un handler de eveniment care de fapt este o
metodă ataşată unei clase şi care se va executa când apare un eveniment particular.

G. Proiect Manager
Aplicaţiile C++ Builder sunt denumite proiecte (projects). Un proiect este un grup de fişiere care
împreună alcătuiesc aplicaţia. Fiecare fişier reprezintă, pentru aplicaţia din care face parte, o resursă care
necesită configurări speciale pentru a putea fi legată la configuraţia finală (dll sau exe). Pe măsură ce aplicaţia
creşte, numărul de fişiere care vor fi adăugate este tot mai mare (pot fi adăugate fişiere multimedia, baze de
date, etc.). C++ Builder manipulează aceste fişiere şi totodată pune la dispoziţia programatorului un
instrument care îi permite acestuia să navigheze uşor printrefişierele care alcătuiesc un proiect.
Se pot vizualiza componentele unui proiect de la opţiunea Proiect manager din meniul View.
Combinaţia dintre bara de acces rapid (speed bar) şi alte “ajutoare” din program, cum ar fi Inspectorul de
obiecte (Object Inspector) diferenţiază C++ Builder de alte medii. Bara de acces rapid este împărţită în două
secţiuni. Jumătatea din stânga conţine butoanele obişnuite pe care le puteţi găsi în orice aplicaţie .
În partea dreaptă a barei de acces rapid se pot vedea mai multe etichete. Fiecare pagină astfel
etichetată conţine una sau mai multe componente. În esenţă o componentă este o parte din codul de aplicaţie
predefinit.
Inspectorul de obiecte apare în partea stângă a ecranului, imediat sub bara de acces rapid. Fereastra
inspectorului de obiecte este constituită din două pagini de etichete.
Prima pagină permite schimbarea proprietăţii oricărui element plasat pe un formular sau chiar a
formularului însuşi. Cea de-a doua pagină permite atribuirea unor anumite proceduri evenimentelor asociate
cu un component.
În dreapta inspectorului de obiecte se găseşte un formular gol. Mediul C++ Builder afişează
întotdeauna un astfel de formular atunci când începem lucrul la o nouă aplicaţie. Ca şi în cazul altor limbaje
de programare, cum ar fi Visual Basic, începem aplicaţia punând toate componentele de care avem nevoie pe
acest formular, apoi utilizăm inspectorul de obiecte pentru a le schimba proprietăţile şi pentru a adăuga cod
care să răspundă unor anumite evenimente.
Componentele pot fi deplasate, pot fi adăugate sau şterse, după nevoie. Acest mod de funcţionare
face mediul C++ Builder să semene mai mult cu un desenator de ecran, atunci când începem să-l folosim.
Odată ce dispunem de un formular, putem începe să modificăm proprietăţile diferitelor componente plasate pe
ecran. Proprietăţile includ totul – de la culorile utilizate pentru afişarea componentei, până la textul explicativ
al unui buton.
Toate aceste operaţii preced activitatea de scriere a codului propriu-zis. Putem acţiona butoanele şi
putem introduce informaţiile în orice controale editabile pe care le-am creat. În acest moment se începe
adăugarea codurilor pentru a face butoanele şi meniurile să execute ceea ce dorim, totul ducând la o aplicaţie
finisată.

VCL (Visual Component Library)


Istoria VCL
VCL a fost introdusă prima dată în Delphi 1.0 este un cadru de dezvoltare constând din clase şi
componente folosite pentru a crea aplicaţii Delphi. VCL a fost rescris pe 32 de biţi începând cu Delphi 2.
Această tehnologie a fost foarte bine primită pe piaţă, ulterior utilizatorii exprimâdu-şi dorinţa de a li se pune
la dispoziţie o astfel de unealtă bazată însă pe C++, rezultând astfel C++Builder.
VCL este astfel proiectat încât aceste clase pot fi manipulate în interiorul mediului vizual al C++
Builder la momentul proiectării aplicaţiei. Acest mediu diferă de alte medii de dezvoltare (Visual C++), unde
comportamentul şi caracteristicile vizuale ale aplicaţiei erau setate la momentul proiectării aplicaţiei. În C+
+Builder, Delphi comportamentul şi caracteristicile vizuale ale aplicaţiei pot fi setate şi la momentul
proiectării şi la momentul execuţiei.
VCL pentru dezvoltatorii de aplicaţii
Aceştia îşi pot crea aplicaţii complete interacţionând cu mediul vizual Delphi, C++Builder. Aceste
persoane folosesc VCL pentru a-şi crea interfaţa sau alte elemente ale aplicaţiei. Dezvoltatorii de aplicaţii
trebuie să cunoască pentru fiecare componentă care proprietăţi, metode şi evenimente sunt disponibile.
VCL pentru dezvoltatorii de componente
Aceştia extind componentele deja create sau dezvoltă altele noi. Un dezvoltator de componente
trebuie să aibă cunoştinţe despre VCL mult mai mari decât ale unui utilizator de componente. Noile
componente pot fi create fie în C++Builder fie în Delphi, dar trebuie să funcţioneze în amândouă.
VCL este alcătuit din componente
Din prisma utilizatorului o componentă este un obiect de cele mai multe ori tras şi scos din
Component Palette şi plasat pe o formă, de unde poate fi manipulat prin intermediul proprietăţilor, metodelor
şi evenimentelor.
Din prisma dezvoltatorului de componente, acestea sunt obiecte C++ sau Object Pascal.

Tipuri de componente
Există patru tipuri de componente de bază:

1. Componente standard
Acestea încapsulează comportamentul controalelor standard Windows: TButton, TEdit,
TListBox etc. Aceste componente se găsesc pe paginile Standard şi Win32 din Component Palette. Fiecare
dintre aceste componente arată şi se comportă ca şi controalele Windows pe care le reprezintă.

2. Componente prelucrabile (custom)

Diferenţa dintre acestea şi cele standard este faptul că acestea nu au o metodă care să le afişeze. Dezvoltatorul
de componente trebuie să scrie cod pentru a afişa componenta pe o formă şi pentru a specifica cum trebuie să
se comporte când utilizatorul interacţionează cu ea.

3. Componente grafice

Acestea sunt controale vizuale care nu pot primi focus de la utilizator. Astfel de componente permit afişarea a
ceva către utilizator, fără să folosească nici o resursă sistem. De exemplu TLabel sau Tshape.

4. Componente non-vizuale

Acestea nu apar pe formă la timpul execuţiei. Totuşi la timpul proiectării unei aplicaţii proprietăţile acestor
obiecte pot fi modificate, şi se poate furniza cod pentru a răspunde la evenimente. Exemple de astfel de
componente sunt TOpenDialog sau TTimer.

PRINCIPALELE MENIURI ŞI COMENZI ÎN SISTEMUL C++ BUILDER

Meniul File (fişiere)


Comanda New
Afişează o fereastră de dialog formată din mai multe pagini, prin care se pot crea aplicaţii noi, forme
noi.

Comanda New Application


Crează un nou proiect C++ Builder (deocamdată vid). Prin lansarea în execuţie a acestei comenzi
vor fi deschise următoarele:
 un nou fişier proiect (Project1.bpr);
 un fişier sursă asociat proiectului (Project1.cpp)
 un fişier de resurse al proiectului (Proiect1.res)
 un nou fişier pentru formă (Unit.dfm);
 unitate asociată formei (Unit1.cpp).
 un fişier header asociat formei (Unit1.h)
Aceste denumiri standard pot fi modificate în momentul salvării fişierelor.

Comanda New Form


Creează o formă vidă şi o nouă unitate asociată formei; ele sunt adăugate la lista fişierelor proiectului
deschis.

Comanda New Data Module


Adaugă un nou modul de date la proiect. În perioada de elaborare a proiectului modulul se
deosebeşte de o formă obişnuită prin faptul, că nu este prevăzut cu o reţea de aliniere şi culoarea de fond
utilizată este albă. Pe modulul de date pot fi plasate numai componente nevizuale.

Comanda Open
Afişează o fereatră de dialog, cu ajutorul căreia se pot încărca un proiect, o formă, o unitate sau un
fişier text existent.

Comanda Reopen
Afişează un submeniu, care conţine proiectele şi unităţile utilizate recent.

Comanda Save (Ctrl+S)


Salvează toate acele fişiere ale proiectului actual, în care au fost operate diferite modificări.

Comanda Save As
Salvează fişierul activ cu un nume diferit sau într-o locaţie diferită.
Comanda Save Project As
Salvează fişierul proiect (de extensie *.BPR) cu un nume diferit sau într-o nouă locaţie.

Comanda Save All


Salvează toate fişierele deschise.

Comanda Close
Închide fişierul actual.

Comanda Close All


Închide toate fişierele proiectului actual.

Comanda Print
Tipăreşte fie pagina activă în editorul de cod, fie forma activă.

Comanda Exit
Închide proiectul deschis şi închide sistemul C++ Builder.

Meniul View (vizualizare)

Comanda Project Manager


Afişează o fereastră de dialog care conţine toate perechile “unitate-formă” utilizate în proiect.
Fereastra de dialog este prevăzută cu diferite butoane de comandă prin care pot fi efectuate diferite operaţii de
gestiune a fişierelor:
 adăugare de fişier la proiect;
 îndepărtare de fişier din proiect;
 vizualizarea listei unităţilor şi formelor;
 opţiunile proiectului referitoare la forme (forme create automat şi forme disponibile).

Comanda Project Source


Deschide o nouă pagină în editorul de coduri, în care se afişează codul sursă al fişierului proiect (de
extensie *.BPR).

Comanda Object Inspector (F11)


Prin redeschiderea ferestrei inspectorului de obiecte; se foloseşte atunci, când această fereastră a fost
închisă.

Comanda Alignment Pallete


Afişează paleta de aliniere utilizată pentru alinierea reciprocă în raport cu forma componentelor.

Comanda Browser
Afişează o fereastră de dialog în care sunt date obiectele, unităţile şi ierarhiile de clase şi de metode
utilizate în aplicaţia actuală. Dacă comanda este inhibată, atunci aplicaţia nu a fost încă compilată.

Comanda Breakpoints
Afişează o fereastră de dialog care conţine toate punctele de întrerupere introduse în proiect.

Comanda Modules
Afişează lista modulelor încărcate în memorie în momentul în care proiectul curent este în execuţie.

Comanda Toggle Form/Unit (F12)


Este un comutator prin care se poate cupla între forma curentă şi fişierul unitate (*.CPP) aferent
formei.

Comanda Units (Ctrl-F12)


Afişează o fereastră de dialog în care sunt date numele fişierului proiect (*.BPR) şi numele tuturor
fişierelor unitate (*.CPP) utilizate în proiectul actual. Prin aplicarea unui dublu clic fişierul selectat va fi
activat în editorul de cod.

Comanda Forms (Shift-F12)


Afişează o fereastră de dialog în care sunt date numele tuturor formelor utilizate în proiectul actual.
Prin aplicarea unui dublu clic forma selectată va fi activată.

Meniul Project (proiect)

Comanda Add to Project


Afişează o fereastră de dialog, prin care se poate adăuga proiectului C++ Builder o unitate existentă,
împreună cu formele asociate unităţii respective.

Comanda Remove From Project


Îndepărtează o unitate din proiectul curent.

Comanda Add to Repository


Afişează o fereastră de dialog, prin care se poate o formă elaborată de utilizator la depozitul de
obiecte. Modelul salvat poate fi ulterior utilizat prin comanda File/New.

Comanda Compile (Ctrl+F9)


Compilează toate fişierele modificate ale proiectului curent într-un fişier executabil (de extensie
*.EXE).

Comanda Build All


Recompilează toate fişierele proiectului actual, indiferent de faptul că ele au fost modificate sau nu.

Comanda Syntax Check


Efectuează verificarea sintactică a fişierelor proiectului actual, însă nu crează un fişier executabil.

Comanda Options
Afişează o fereastră de dialog formată din şapte pagini, prin care pot fi selectate diferite opţiuni
referitoare la proiectul actual.

UTILIZAREA INSPECTORULUI DE OBIECTE


Inspectorul de obiecte este prevăzut cu două pagini. Pagina Properties permite stabilirea propietăţilor
componentelor. Pagina Events gestionează diferitele evenimente legate de componente.
Pagina Properties este prevăzută cu două coloane. În coloana din stânga sunt listate denumirile
proprietăţilor. În coloana din dreapta sunt afişate valorile actuale aferente diverselor proprietăţi.

FORME
Pentru descrierea formelor pot fi utilizate 38 de proprietăţi, care pot fi stabilite în perioada de
elaborare a proiectului prin intermediul inspectorului de obiecte. Formele pot să “reacţioneze” la 21 de
evenimente.

Proprietăţile formelor
Proprietatea ActiveControl
Este utilizată atunci, când pe formă au fost aşezate mai multe componente şi se doreşte specificarea
componentei care să fie în focar, în momentul iniţial.

Proprietatea AutoScroll (de tip boolean)


Se referă la modul de utilizare a barelor de defilare ataşate formei. În cazul în care se alege valoarea
True, care este şi valoarea implicită, atunci în caz de nevoie, în execuţie, forma va fi prevăzută cu bare de
defilare. Dacă se alege valoarea False, nu se vor ataşa automat bare de defilare la formă redimensionată. În
acest caz ataşarea barelor de defilare poate fi realizată prin intermediul proprietăţilor HorzScrollBar şi
VertScrollBar.

Proprietatea compusă BorderIcons


Se referă la existenţa în linia de titlu a formei meniului sistem şi butoanelor de minimizare şi
maximizare.

Proprietatea BorderStyle
Se referă la stilul chenarului formei.

Proprietatea Caption (de tip string)


Specifică un şir de caractere care este afişat în linia de titlu al formei, de exemplu Form.1.

Proprietăţile ClientHeight şi Client Width (de tip integer)


Se referă la înălţimea şi lăţimea zonei client a formei. Aceste valori sunt specificate în puncte.

Proprietatea Color (de tip Tcolor = longint)


Stabileşte culoare de fond a formei.

Proprietatea Ctl3D (de tip boolean)


Determnă dacă forma sau componenta are spect tridimensional (pentru True) sau aspect
bidimensional (pentru False).

Proprietatea Cursor
Stabileşte imaginea utilizată pentru reprezentarea cursorului de mouse.

Proprietatea Enabled (de tip boolean)


Se referă la accesibilitatea formei sau componentei. Dacă se alege varianta True, care este şi
valoarea implicită, atunci forma sau componenta va reacţiona la diferitele evenimente referitoare la mouse,
tastatură şi ceas. Dacă se alege varianta False, forma sau componenta va fi inhibată şi nu va răspunde la
evenimentele echipamentelor de intrare.
Proprietatea compusă Font
Stabileşte fontul utilizat la textele care sunt afişate pe obiectul Canvas al formei precum şi la textele
aferente componentelor aşezate pe formă.

Proprietatea FormStyle
Stabileşte stilul formei. Valorile posibile ale acestei proprietăţi sunt următoarele;
Valoare Semnificaţie
fsMDINormal Forma crează o fereastră normală (nici MDI copil, nici MDI părinte). Valoarea implicită.
FsMDIChild Forma crează o fereastră MDI copil.
fsMDIForm Forma crează o fereastră MDI părinte.
fsStyOnTop Forma va fi afişată deasupra celorlate forme utilizate în proiect.

Proprietăţile Height şi Width (de tip integer)


Stabilesc înălţimea, respectiv lăţimea formei sau componentei. Aceste valori sunt exprimate în
puncte care iincludeşi dimensiunile rezervate chemarelor.

Proprietatea Hint (de tip string)


Specifică un text explicativ care va afişa atunci, când cursorul de mouse este aşezat deasupra unei
forme sau componente. Acest text este afişat numai atunci, când proprietatea ShowHint (de tip boolean) este
iniţializată cu valoarea True.
Proprietăţile compuse HorzScrollBar şi VertScrollBar
Stabilesc dacă forma este prevăzută sau nu cu bare de defilare orizontale şi/sau verticale.

Proprietatea Icon
Specifică simbolul grafic care va fi utilizat atunci, când forma este minimizată.

Proprietatea Key Preview (de tip boolean)


Se referă la mosul de gestiune a eventimentelor referitoare la utilizarea tastaturii (OnKeyDown,
OnKeyPress şi OnKeyUp). Dacă pentru această proprietate se alege valoarea True, atunci evenimentele
referitoare la tastatură sunt gestionate de forma actuală, şi nu de componentele aşezate pe formă, chiar dacă în
momentul respectiv în focar se află o componentă.

Proprietăţile Left şi Top (de tip integer)


Stabilesc abscisa, respectiv ordonate:
 formei faţă de colţul stânga sus al ecranului;
 componentei faţă de colţul stând sau formei proprietar;
 componentei faţă de colţul stânga sus al unei componente de tip container.
Valorile acestor proprietăţi sunt date în puncte.

Proprietatea Menu (de tip TMainMenu)


Stabileşte componenta de meniu principal care este utilizat de formă la un moment dat.

Proprietatea PopupMenu (de tip TPopupMenu)


Identifică componenta de meniu flotant care este utilizată de formă la un moment dat.

Proprietatea Name (de tip string)


Permite atribuirea unui nume la o formă sau componentă. Atribuirile de nume sunt realizate automat
de sistemul C++ Builder, însă denumirile predefinite (de exemplu Form1, Form2, …) pot fi modificate, codul
sursă al aplicaţiei devenind astfel mai lizibil.

Proprietatea ParentFont(de tip booleam)


Se referă la modul de selecţie al fontului unei componente. Dacă se alege varianta True, atunci fontul
utilizat de o componentă este identic cu fontul utilizat de forma proprietar. Dacă se alege varianta False,
atunci fontul componentei nu va depinde de fontul formei proprietar.

Proprietatea Position
Se referă la dimensiunea şi locul de deplasare a formei în execuţie.
Proprietatea PrintScale
Se referă la modul de tipărire a formei, mai precis la modul de alegere a scalei utilizate în procesul
de tipărire.

Proprietatea Scaled (de tip boolean)


Stabileşte modul de dimensionare a formei, în funcţie de proprietatea PixelsPerInch. Dacă se alege
valoarea True, care este şi valoarea implicită, atunci proprietatea PixelsPerInch stabileşte numărul de puncte
care va utiliza într-un inch al formei. Dacă se alege valoarea False, atunci valoarea specifică în proprietatea
PixelsPerInch este neglijabilă.

Proprietatea Tag (de tip longint)


Este utilizată atât la forme, cât şi la componente. Cu ajutorul acestei proprietăţi se poate adăuga o
valoare la forme şi componente. Această proprietate nu are o semnificaţie predefinită, poate fi utilizată de
exemplu pentru memorarea valorilor întregi şi de tip reper.
Proprietatea Visible (de tip boolean)
Se referă la vizibilitatea formei. Dacă se alege valoarea True, forma va fi vizibilă în execuţie, iar în
cazul alegerii valorii False forma va fi invizibilă. Proprietăţii Visible i se poate atribui valoarea True şi prin
Intermediul metodelor Show sau ShowModal.

Proprietatea WindowMenu (de tip TMenuItem)


Este utilizată numai la forme MDI (interfaţă multidocument) părinte, adică la acele forme, pentru
care stilul utilizat este fsMDIForm. Cu ajutorul acestei proprietăţi se desemnează un element de meniu din
linia meniului principal, la care sistemul C++ Builder va adăuga automat meniul Window (lista ferestrelor
copil deschise în fereastra părinte, cu indicarea ferestrei active).

Proprietatea WindowState
Se referă la modul de afişare pe ecran a formei.

Evenimentele formelor
Evenimentul OnActivate

Apare în momentul în care o formă ajunge în focar.


Procedura ataşată acestui eveniment are prototipul următor:

procedure Tform1.FormActivate (Sender:TObject);


begin
end;

Evenimentul OnClick
Apare atunci când utilizatorul efectuează un clic de mouse pe o zonă liberă a formei.

Evenimentul OnDblClick
Apare atunci când utilizatorul efectuează un dublu clic de mouse pe o zonă liberă a formei.

Evenimentul OnCloseQuery
Apare în momentul în care utilizatorul face o anumită acţiune, prin care semnalează faptul, că
doreşte să închidă forma. Procedura ataşată acestui eveniment are prototipul următor:
procedure Tform1.FromCloseQuery (Sender: Tobject; var CanClose: Boolean);
begin
end;
Dacă în această procedură utilizatorul atribuie parametrul variabil CanClose valoarea True, forma
poate fi închisă şi în continuare se lansează în execuţie procedura ataşată evenimentului OnClose. Dacă
variabilei CanClose i se atribuie valoarea False, forma nu poate fi închisă.

Evenimentul OnClose
Apare în momentul în care utilizatorul a cerut închiderea formei. Acest eveniment apare după
evenimentul OnCloseQuery.

Evenimentul OnCreate
Apare în momentul în care se creează forma (adică la prima execuţie a formei). De regulă se
foloseşte iniţializarea proprietăţilor formei şi a componentelor aşezate pe formă.
În procesul de creare a unei forme, dacă proprietatea de vizibilitate a formei Visible este True, se vor
declanşa următoarele evenimente, în ordinea specificată mai jos.
 OnCreate
 OnShow
 OnActivate
 OnPaint

Evenimentul OnDeactivate
Apare în momentul în care forma urmează să piardă focarul, adică atunci, când aplicaţia foloseşte
mai multe forme şi utilizatorului printr-un clic de mouse activează o altă formă.

Evenimentul OnDestroy
Apare în momentul în care se distruge forma actuală (adică se eliberează toate resursele ataşate
formei).
În această procedură se vor distruge toate acele obiecte, care au fost create în metoda de tratare a
evenimentului OnCreate.

Evenimentul OnHide
Apare în momentul în care forma este ascunsă, adică proprietatea de vizibilitate a formei Visible este
iniţializată cu valoarea False.

Evenimentul OnShow
Apare în momentul în care forma este afişată, adică proprietatea de vizibilitate a formei Visible este
iniţializată cu valoarea True.

Evenimentul OnPaint
Este declanşat în momentul în care unele zone ale formei date trebuie să fie redresate (de exemplu
datorită faptului, că unele zone ale formei au fost acoperite temporar de alte ferestre).

Evenimentul OnResize
Este declanşat în momentul în care forma a fost redimensionată de utilizator.

PALETA DE COMPONENTE
Paleta de componente a programului C++ Builder este împărţită în diferite pagini.

6.1 Pagina Standard din paleta de componente


Toate componentele din pagina standard sunt vizibile; ele sunt denumite şi controale. Componentele
acestei pagini sunt utilizate cel mai frecvent.
Tabelul următor centralizează funcţiile diferitelor componente din această pagină.

Nume Descriere
MainMenu Meniul principal
Creează linia meniului principal şi comenzile conţinute în diferite meniuri.
PopupMenu Meniul flotant (local)
Creează meniuri flotante; care în execuţie pot fi afişate prin acţionarea butonului drept de
mouse.
Label Etichetă
De regulă se foloseşte pentru afişarea diferitelor texte statice.
Edit Linie de editare
Afişează o zonă de editare formată dintr-o singură linie în care utilizatorul poate să introducă
sau să editeze un text.
Memo Memo
Afişează o zonă de editare formată din mai multe linii.
Button Buton de comandă
Creează un control de tip buton, prin care utilizatorul poate să lanseze în execuţie diferite
acţiuni.
CheckBox Buton de opţiune
Creează un control care are două stări (selectat - neselectat). Butoanele de opţiune sunt utilizate
pentru a afişa unele alegeri care nu se exclud reciproc. Într-un grup de butoane de opţiuni
utilizatorului poate să selecteze mai multe butoane de opţiuni.
RadioButton Buton radio
Creează un control care are două stări (selectat-neselectat). Butoanele radio sunt utilizate pentru
a afişa unele alegeri care se exclud reciproc. Într-un grup de butoane radio utilizatorului poate
să selecteze un singur buton radio.
ListBox Listă derulată
Afişează o listă formată din mai multe elemente, din care utilizatorul poate să selecteze (de
regulă) un singur element.
ComboBox Listă ascunsă(combinată)
Afişează o listă formată din mai multe elemente, din care utilizatorul poate să selecteze (de
regulă) un singur element.
ScrollBar Bara de schimb de informaţii şi de defilare
Afişează o bară orizontală sau verticală la care este ataşat un buton glisant. Poziţia actuală a
butonului glisant este pusă în corespondenţă biunivocă cu o valoare numerică dintr-un domeniu
definit de utilizator. Poziţia actuală poate fi folosită şi pentru realizarea defilării unui obiect (de
exemplu imagine grafică).
GroupBox Grup (cutie de grupare)
Este o componentă de tip container plasate în interiorul cutiei aparţin la acelaşi grup (astfel, de
exemplu, ele pot fi deplasate simultan).
RadioGroup Grup de butoane radio
Este o componentă de tip container destinată grupării butoanelor radio.
Panel Panou
Creează o componentă de tip container care poate conţine şi alte componente. De regulă se
foloseşte pentru crearea unei linii de stare sau a unei bare de unelte.

Observaţie: La toate componentele utilizate în C++ Builder, tipul obiectului asociat componentei
începe cu litera T, de exemplu tipul unui obiect corespunzător componentei Label este TLabel.

6.2 Pagina Additional din paleta de componente


Componentele paginii adiţionale sunt destinate pentru realizarea diferitelor obiective speciale în
aplicaţii C++ Builder.
Tabelul următor centralizează funcţiile diferitelor componente din această pagină.
Nume Descriere
BitBtn Buton de comandă
Poate să afişeze atât un text, cât şi o imagine grafică.
SpeedButton Buton de accelerare
Poate să afişeze o imagine grafică, dar nu şi un text. De regulă aceste butoane sunt grupate, în
interiorul unui panou, pentru a crea o bară de unelte (bară de accelerare).
MaskEdit Linie de editare
Permite introducerea doar a acelor caractere, care sunt permise de o mască definită de utilizator
(caracterele care pot fi introduse sunt deci limitate, de exemplu în linia de editare pot fi
introduse doar cifre). Masca de selectare a caracterelor permise este definită de proprietatea
EditMask.
StringGrid Reţea de şiruri de caractere
Creează o reţea (un tabel), în care celulele reţelei conţin diferite şiruri de caractere (de tip
String).
DrawGrid Reţea de imagini grafice
Creează o reţea (un tabel), în care celulele reţelei conţin diferite imagini grafice.
Image Imagine
Se foloseşte pentru afişarea imaginilor de tip bitmap (*.BMP). Windows metafile (*.WMF) sau
simbol grafic (*.JCO).
Shape Modele geometrice
Permite desenarea diferitelor obiecte geometrice simple (cerc, elipsă precum şi dreptunghi sau
pătrat, cu sau fără colţuri rotunjite).
Bevel Dungă (teşitură)
Creează linii sau dreptunghiuri care au aspect tridimensional (liniile sunt urcate sau coborâte
faţă de forma proprietar).
ScrollBox Cutie de defilare
Creează un container redimensional, care – în caz de nevoie – va afişa automat bare de defilare
orizontale şi verticale.
CheckListBox Afişează o listă similară cu componenta ListBox, cu excepţia că fiecărui element al listei îi
corespunde şi un buton de opţiune.
Splitter Despărţitor
Se depune între două controale de tip panou aliniate în aceeaşi parte a ferestrei. Cu ajutorul lui
(în execuţie) controalele despărţite pot fi redimensionate, prin operaţia de tragere cu mouse-ul.
StaticText Text static
Este similar cu componenta Label, cu excepţia că este prevăzut şi cu un handler de fereastră.
Chart Diagramă
Echivalentul grafic al componentei de tip Table

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