Documente Academic
Documente Profesional
Documente Cultură
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ă).
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.
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.
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.
View unit
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ă.
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ă.
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.
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 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 Close
Închide fişierul 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.
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 Options
Afişează o fereastră de dialog formată din şapte pagini, prin care pot fi selectate diferite opţiuni
referitoare la proiectul actual.
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 BorderStyle
Se referă la stilul chenarului formei.
Proprietatea Cursor
Stabileşte imaginea utilizată pentru reprezentarea cursorului de mouse.
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.
Proprietatea Icon
Specifică simbolul grafic care va fi utilizat atunci, când forma este minimizată.
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 WindowState
Se referă la modul de afişare pe ecran a formei.
Evenimentele formelor
Evenimentul OnActivate
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.
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.