Sunteți pe pagina 1din 16

MINISTERUL EDUCAȚIEI

ACADEMIA DE STUDII ECONOMICE


FACULTATEA “CIBERNETICĂ, STATISTICĂ
și INFORMATICĂ ECONOMICĂ”

LUCRARE DE LABORATOR nr. 3

Studierea componentelor Borland


C++ Builder Form

A efectuat:
Studentul grupei CIB
Baban Ion

A controlat:
Lector superior
Ion Linga

Chișinău 2015
Cuprinsul
Scopul ............................................................................................................................ 3
1. Componentele C++ Builder .................................................................................... 3
1.1. Selectarea componentelor pentru operații în grup .............................................. 3
1.2. Setarea acelorași proprietăți diferitor componente ............................................. 3
1.3. Modificarea dimensiunii componentelor ............................................................ 4
1.4. Alinierea componentelor ..................................................................................... 5
2. Crearea unui redactor de texte................................................................................... 7
2.1. Proiectarea formularului aplicației ...................................................................... 7
2.2 Crearea proceselor de evenimente ....................................................................... 8
3. Crearea meniului ................................................................................................... 11
4. Ecuația de gradul II ................................................................................................. 12
Concluzie ..................................................................................................................... 14
Bibliografie .................................................................................................................. 15

2
Scopul
Aceasta lucrare de laborator are ca scop examinarea metodelor de manipulare a componentelor
în formular pe baza unui exemplu de aplicare a componentelor cel mai frecvent utilizate. Anume
crearea unei aplicatie care deschide, salveaza si scrie in fisier.

1. Componentele C++ Builder

1.1. Selectarea componentelor pentru operații în grup

Pentru elaborarea eficienta a interfeței dintre utilizator și aplicație în C++ Builder apare
necesitatea manipulării componentelor în formulare. Majoritatea operațiilor de manipulare a
componentelor se afla în meniul “Edit”. La opțiunile acestui meniu urmeaza a se adresa dupa ce în
formular au fost selectate una sau câteva componente, proprietațile carora necesita modificari.

Selectarea unei componente se face prin urmatoarele modalitați :

 Se selecteaza componenta în formular cu ajutorul mouse-lui;


 Se selecteaza numele componentei în caseta de selectare a obiectelor;
 Se trece la component respective în formular cu tasta Tab.

Selectarea câtorva component se face prin urmatoarele modalitați :

 Ținând apăsată tasta Shift, se face clic cu mouse-ul pe fiecare component;


 Cu tasta stânga a mouse-lui apăsată se inconjoara componentele necesare cu un contur
dreptunghiular.

1.2. Setarea acelorași proprietăți diferitor componente

Majoritatea componentelor vizuale au proprietați comune, (de exemplu Visible, Width, Left).
Setarea acelorași valori pentru proprietațile comune ale câtorva componente efectuăm urmatoarele
acțiuni:

1. Se selectează cateva componente pentru reglare (în acest caz pagina proprietaților și
spectrul obiectelor va reflecta doar acele proprietați pe care le au toate coponentele
selectate);
2. Se setează valorile proprietaților comune ale componentelor selectate .

3
1.3. Modificarea dimensiunii componentelor

Modificarea dimensiunii unei component poate fi efectuată atit la adăugarea acesteia în


formular cât și după aceia.

La adaugarea componentei aceasta urmează a fi selectată în paleta componentelor. Apoi se


poziționează cursorul mouse-lui pe formular, se apasă butonul stâng și se deplasează mouse-ul asa,
încât sa apară un dreptunghi , care reprezintă marginile viitoarei componente. Când dreptunghiul
va avea dimensiunile necesare, butonul stâng al mouse-lui va fi eliberat (vezi figura 1.1.).

Dacă cursorul mouse-lui se poziționeaza pe unul din patratelele negre apărute în jurul
componentei el își schimba forma. Deplasând cursorul și împreuna cu el marginea componentei, se
pot modifica dimensiunile acesteia.

Figura 1.1 “Modificarea dimensiunii componentei la adaugarea acesteia in formular”

Pentru modificarea dimensiunilor câtorva componente acestea urmeaza a fi selectate prin una
din modalitațile descrise mai sus. Dupa aceia se selectează opțiunea meniului Edit/Size. Apare
caseta de dialog Size în care se selectează opțiunile dimensiunii. Pentru setarea precisa a
dimensiunii în pixeli se culeg numere în câmpurile Width și Height. Dupa aceia se apasă butonul
OK (vezi figura 1.2).

Figura 1.2 “Setarea proprietatilor componentelor cu utilizarea meniului EDIT/SIZE”

4
Pot fi adăugate mai multe copii ale unei componente, daca aceasta se selectează din paleta cu
tasta Shift apăsată. În acest caz în jurul componentei apare un dreptunghi. Dupa aceasta fiecare
clic al mouse-lui pe formular se soldează cu apariția pe el a unei copii a componentei. La incheierea
regimului de copiere multiplă trebuie de făcut un clic pe instrumentul de selectare a cursorului
(primul buton pe paleta componentelor cu imaginea săgetii).

1.4. Alinierea componentelor


Pentru alinierea componentelor in formular se folosesc urmatoarele combinații de taste (vezi
tabelul 1.1).

Shift+sageti Modifica dimensiunea componentei cu un pixel in directia sagetii


selectate

Shift+Ctrl+sageti Deplaseaza componenta cu o unitate a plasei in directia sagetii


selectate

Ctrl+sageti Deplaseaza componenta cu un pixel in directia sagetii selectate

Tabelul 1.1 “Combinații de taste”

Componentele pot fi aliniate de asemenea utilizand punctual meniului View/Alignment Palette.


Pentru aceasta:

1. Se selectează componentele pentru aliniere.


2. Se selectează punctual meniului View/Alignment Palette.
3. Se selectează butonul necesar (vezi figura 1.3.).

Figura 1.3. “Alinierea componentelor cu ajutorul View/Alignment Palette”

Componentele pot fi aliniate utilizand optiunea meniului Edit/Align.Pentru aceasta:

1. Se selectează componentele pentru aliniere.


2. Se selectează meniul Edit/Align. Apare caseta de dialog Alignment.
3. Se selectează opțiunea necesara și se apasa butonul OK (vezi figura 1.4.).

5
Figura 1.4. “Alinierea componentelor cu ajutoruln meniului Edit/Align”

La fel, condițiile de aliniere a componentelor pot fi modificate, utilizând punctul meniului


Options/Environment.
Pentru aceasta:

1. Se selectează punctual meniului Options/Environment. Caseta de dialog Environment


apare deschisă pe pagina Preferences (vezi figura 1.5.).
2. În grupul Form designer pot fi selectate urmatoarele opțiuni:
a. Display grid – plasa din puncte de formular va fi vizibilă pentru componentele
care se aliniază;
b. Snap to grid – marginile din stânga și de sus ale componentelor se vor situa pe
liniile plasei.
3. Pentru a modifica distanța dintre nodurile plasei trebuie de întrodus valori noi în locul celor
existente (Valoarea implicita este 8 pixeli pa axa X (pe orizontala) si pe axa Y (pe
verticala)).
4. Se apasa OK.

Figura 1.5. “Alinierea componentelor cu ajutorul paginii Preferences”

6
2. Crearea unui redactor de texte
Crearea unei aplicatii care face cele mai utilizate functii ale unui editor de texte, acesta este scopul
nostru in aceasta lucrare.

2.1. Proiectarea formularului aplicației


Pentru a crea un redactor de text nou se va crea un nou proiect si un nou formular, pe care vor fi
amplasate urmatoarele componente (vezi tabelul 2.1.).
Componenta Proprietăți

TPanel panoul de instrumente, care va avea proprietățile: Align cu valoarea “alTop”,


Caption – un rind gol.
TRichEdit cu proprietatile: Align cu valoarea “alClient”, ScrollBars cu valoarea
“ssVertical”, Lines – un tablou gol de rânduri.
TOpenDialog folosit pentru deschiderea documentelor.
TSaveDialog utilizat pentru deschiderea documentelor. Proprietatea Filter a componentelor
TOpenDialog si TSaveDialog va fi modificata prin introducerea denumirilor
tipurilor de documente ce pot fi deschise in opțiunea FilterEditor
(vezi figura 2.1).
StatusBar se găsește pe pagina Win32 si mai presupune redactarea proprietății Panels.

Tabelul 2.1. “Componentele si proprietățile pentru redactorul de texte”


Imaginea formularului principal al aplicației este reprezentat în continuare (vezi figura 2.2.).

Figura 2.1. “Modificarea optiunii Filter a dialogurilor amplasate pe formular”

7
Figura 2.2. “Imaginea formularului principal al aplicației”

2.2 Crearea proceselor de evenimente

Acum vom scrie funcții – procesoare de evenimente OnClick pentru butoane.

 Butonul SpeedButton3 servește pentru deschiderea fișierului spre redactare și afișarea


numelui fișierului pe panoul de stare:

void _fastcall TForm1 : :SpeedButton3Click(TObject *Sender)


{
If (OpenDialog1->Execute ())
Memo1->Lines->LoadFromFile (OpenDialog1->FileName);
StatusBar1->Panels->Items[0] ->Text=OpenDialog1->FileName;
}
 Butonul SpeedButton5 servește pentru salvarea fișierului redactat cu un nume anumit și
afișarea numelui fișierului pe panoul de stare.

void _ fastcall TForm1 : :SpeedButton5Click(TObject *Sender)


{
If (SaveDialog1->Execute())
Memo1->Lines->SaveToFile (SaveDialog1->FileName);

8
StatusBar1->Panels->Items[0] ->Text=SaveDialog1->FileName;
}
 Butonul SpeedButton2 servește pentru curățirea ferestrei de redactare. Însa în cazul când
buferul de redactare conține un text cules este necesar de a întreba utilizatorul daca dorește
să păstreze acest text. Nu are sens să cream pentru aceasta un formular aparte, care să
conțina doar textul întrebării si 2 butoane. Este mai comod să utilizăm funcția Windows API
MessageBox.

Pentru salvarea textului cules poate fi utilizată funcția existent SpeedButton5Click .

În corespundere cu aceasta, procesul de evenimente la apăsarea butonului SpeedButton2 va


arăta precum urmează:

void _ fastcall TForm1 : :SpeedButton2Click(TObject *Sender)


{
If (Memo1 -> Lines ->Count>0)
{
if (MessageBox(0,“Doriti sa salvati continutul ferestrei de
redactare?”,“Confirmati salvarea ”, MB_YESNO) == IDYES)
{
SpeedButton5Click (Sender)
}
}
Memo ->Clear();
StatusBar1 ->Panels-> Items[0] ->Text=”Fara nume”;}

 Butonul SpeedButton1 închide fereastra aplicației. În acest caz este necesar de a-i propune
utilizatorului să salveze textul cules, utilizând funcția creată mai sus – SpeedButton2Click:
void _ fastcall TForm1 : :SpeedButton1Click(TObject *Sender)
{
SpeedButton2Click (Sender);
Close();
}
 Butonul SpeedButton4 serveste pentru salvarea fisierului redactat:

void _ fastcall TForm1 : :SpeedButton4Click(TObject *Sender)

9
{
if (StatusBar1 -> Panels ->Item[0] ->Text == ”Fara nume”)
SpeedButton5Click (Sender);
else
Memo1->Lines->SaveToFile (StatusBar1 -> Panels ->Items[0]->Text);
}
 Butoanele SpeedButton6 si SpeedButton7 servesc pentru trecerea și copierea fragmentului
de text marcat din fereastra de redactare în tamponul de interschimb Clipboard:

void _ fastcall TForm1 : :SpeedButton6Click(TObject *Sender)


{
Memo1 -> CutToClipboard ();
}
void _ fastcall TForm1 : :SpeedButton7Click(TObject *Sender)
{
Memo1 -> CopyToClipboard ();
}
 Butonul SpeedButton8 serveste pentru salvarea fisierului redactat:

void _ fastcall TForm1 : :SpeedButton7Click(TObject *Sender)


{
Memo1 -> PasteFromClipboard ();
}
 Butonul SpeedButton9 servește pentru afișarea pe ecran a panoului de dialog “Despre
program”. (vezi figura 2.3.).

Figura 2.3. “Despre Program”

10
 Procesorul de evenimente la apasarea butonului SpeedButton9 va arăta în felul urmator:

void _ fastcall TForm1 : :SpeedButton9Click(TObject *Sender)


{
Application -> CreateForm(_classid(TAboutBox), &AboutBox);
AboutBox ->ShowModal ();
AboutBox ->Free ();
}

3. Crearea meniului

Ca sa creem meniul avem nevoie sa amplasam pe forma componenta TMainMenu de pe pagina


Standard. Apasind butonul drept al mouse-lui, din meniul de context selectăm punctual Menu
Designer. Deplasandu-se cu ajutorul sagetilor tastaturii, cream componente - puncte ale meniului
de cel mai inalt nivel și de nivele ulterioare, introducând randuri textuale în coloana valorilor vizavi
de proprietatea Caption.

Vom crea urmatoarele meniuri: “&fișier” (cu punctele “&creare”, “&deschidere…”,


“&salvare”, “salvare cu &nume…”, “-”,”&iesire”), “&reprezentare” (cu punctual “&panoul de
instrumente”), “&redactare” (cu punctele “&taiere”, “&copiere”,”&includere”) si “&?” cu punctual
“despre &program”.

Dacă în proprietatea Caption a caruiva punct din meniu sta semnul “-”, în acest loc va apărea o
linie orizontală de separare.

Semnul “&” este necesar pentru a lega de punctul meniului așa zisele taste “fierbinți”. Dacă
înaintea literei din numele punctului meniului sta acest semn, atunci la afișarea meniului aceasta
literă va fi subliniată și apăsarea tastei corespunzatoare acestei litere în timp ce este apasată tasta Alt
va conduce la activarea punctului respective al meniului. Desigur, într-un meniu toate tastele
“fierbinți” trebuie sa fie diferite, cu toate ca C++ Builder nu controlează acest lucru.

Acuma în inspectorul obiectelor selectăm pagina evenimentelor și stabilim legatura între


funcțiile deja create SpeedButton1Click,…,SpeedButton9Click și punctele respective ale
meniului, selectând numele funcțiilor din lista în cădere (desfașurare).

11
A ramas neutilizat punctual meniului “Panoul de instrumente”. Atribuim proprietații Checked
a acestui punct al meniului valoarea true. Creăm pentru punctual meniului “Panoul de instrumente”
urmatorul procesor de evenimente OnClick.

void _ fastcall TForm1 : : N9Click(TObject *Sender)


{
N9 -> Checked = !N9 -> Checked;
Panel1 -> Visible = N9-> Checked;
}
Pentru a vedea tot codul editorului de text creat de mine, vedeti (Anexa 1.)

4. Ecuația de gradul II

Trecem pe formular componentele Tlabel – A, Tedit – ab, și Tbutton – ok și le amplasăm pe


firmular (pentru a amplasa concomitent câteva componente apăsăm butoanele lor ținînd apăsată
tasta Shift). Pentru modificarea dimensiunilor componentelor introducem valorile respective
proprietăților Top, Left, Width, height ale inspectorului sau poziționăm cursorul mouse-lui pe vârful
componentei si îl redimensionăm. Pentru modificarea numelui componentei selectate utilizăm
proprietatea Name.

Pentru modificarea inscripțiilor pe componente este necesar să modificăm proprietatea Caption


în Inspectorul obiectelor. Pentru definirea procesului evenimentului OnClick(), care se produce la
apăsarea pe obiect cu butonul mouse-lui sunt 2 căi: de introdus numele sau de al selecta din lista
celor accesibile în partea dreaptă a Inspectorului, sau pur și simplu de făcut dublu clic pe buton.
După aceasta în Redactor se va deschide fereastra pentru introducerea codului respectiv:

void __fastcall TForm1::Button1Click(TObject *Sender)


{
double a,b,c;
a=Edit1->Text.ToDouble();
b=Edit2->Text.ToDouble();
c=Edit3->Text.ToDouble();
double d=b*b+4*a*c;
if(d<0)
{
Label2->Caption="Nu sunt radacini";

12
}
else{
if(d==0)
{
double x3=-b/(2*a);
Label2->Caption="x1=x2="+String(x3);
}
else
{
double x1=(-b+sqrt(d))/(2*a);
double x2=(-b-sqrt(d))/(2*a);
Label2->Caption="x1="+String(x1)+";\r\n x2="+String(x2);
}
}
}
Aici Edit1, Edit2 și Edit3 sunt câmpuri respective pentru introducerea datelor,iar Label2 - ne
afișează rezultatul. Proprietatea Text a obiectelor din clasa TEdit conține rândul introdus.
Programul afișează rădăcinile obținute (vezi figura 4.1.).

Figura 4.1. “Aplicația ecuației de gradul II”

Pentru a vizualiza intreg codul aplicatii care calculeaza radacinele ecuatiei patratice vedeti
(Anexa 2.)

13
Concluzie

Lucrarea de laborator Nr.3 a fost o lucrare mai complexa, a fost nevoie sa facem evenimente in
dependent la alte evenimente, de exemplu butonul care inchide forma la text editor, cand facem
click pe acel buton el in acelasi timp apeleaza al buton pentru a ne intreba daca dorim sa salvam
ceia ce avem scris in editorul de text. Am aflat lucruri noi si am observant in ce consta principiul
programarii pe obiecte. A doua aplicatie ecuatia patratica, pentru mine a fost ca o aplicatie care sa i-
smi readuc aminte cum se rezolva mathematic asa ecuatie ca dupa aceasta sa urmez algoritmul si sa
scriu codul programului.

14
Bibliografie

Surse tipografice:

1. Material metodic lucrări de laborator, Chișinău, 2012

Surse internet:

2. www.google.com

15
16