Documente Academic
Documente Profesional
Documente Cultură
Manuald PDF
Manuald PDF
1.Introducere
Lucrarea este destinat celor care doresc s dezvolte aplicaii Windows utiliznd
mediul de programare Delphi. Am ales Delphi-ul deoarece este uor de nvat, fiind foarte
asemntor cu limbajul Pascal care este predat n liceu. Un alt motiv pentru care am ales
mediul Delphi este c n urma compilrii programelor se obin executabile mici ce ruleaz
rapid i nu necesit librrii ca s poat rula(un program similar scris n Visual Basic necesit
cca. 5 Megabytes de librrii).
Pentru a putea nelege i folosi acest manual este necesar ca utilizatorul s cunoasc
bine limbajul Pascal, deoarece Delphi-ul este practic limbajul Pascal orientat pe obiect. Cu
toate c Delphi-ul este un limbaj orientat pe obiect nu este necesar cunoaterea principiilor
programrii ntr-un astfel de limbaj pentru realizarea unor programe simple. Dac se dorete
realizarea unor componente pentru Delphi sau modificarea unora dintre cele existente atunci
este necesar cunoaterea principiilor programrii ntr-un limbaj orientat pe obiect.
Am ales pentru prezentare Delphi 5 Enterprise Edition deoarece este varianta cea mai
complet, celelalte variante :Professional Edition, Standard Edition fiind variante prescurtate,
care nu conin toate facilitile variantei Enterprise.
Resursele necesare instalrii i rulrii Delphi-ului sunt:
CPU - Pentium 90 MHz, recomandabil 166 MHz
Windows 9x/Me, 2000, NT4 cu Service Pack 3 sau mai nou
Memorie 32 Mb RAM, recomandabil 64 Mb
HDD - 80 Mb (instalare minim), recomandabil 250 Mb
Monitor VGA, recomandabil SVGA cu o rezoluie de 800x600
Mouse
CD-ROM
1
Utilizare Delphi 5 autor Popa Daniel
Din bara de meniuri pot fi accesate meniurile Delphi-ului, bara de butoane permind
accesul rapid la principalele comenzi.
Paleta de comenzi permite accesul rapid la cele peste 200 de componente ale mediului
Delphi. Pentru o mai bun gestionare a componentelor acestea sunt mprite pe mai multe
pagini, existnd i posibilitatea adugrii unor pagini noi i a unor componente noi.
n partea stng a imaginii poate fi observat inspectorul de obiecte (object inspector)
cu ajutorul cruia pot fi modificate proprietile obiectelor(Properties) i pot fi stabilite ce
rutine (proceduri) vor fi executate n momentul apariiei unor evenimente(Events).
2
Utilizare Delphi 5 autor Popa Daniel
Meniul File
Se utilizeaz a deschide, salva, nchide, tipri proiecte sau fiiere noi sau existente, pentru
adugarea unor noi ferestre(form) sau uniti de program(unit) proiectului deschis
n meniu putem gsi urmtoarele opiuni:
New deschide o fereastr de dialog de unde putem alege ce obiect dorim s crem,
sau putem selecta un vrjitor (wizard) care s ne ajute la crearea unui nou obiect.
New Application creeaz un nou proiect care conine o fereastr goal, un unit i un
fiier de proiect.
New Form creeaz o fereastr goal i o adaug proiectului curent
New Frame creeaz un nou frame (fereastr invizibil destinat componentelor
nevizuale aflate n proiect, se utilizeaz pentru o mai bun gestiune a componentelor
folosite n cadrul proiectului) pentru proiectul curent
Open deschide o fereastr de dialog pentru ncrcarea unui proiect, fereastr, unit
sau fiier text.
Open Project deschide o fereastr de dialog pentru ncrcarea unui proiect existent (
fiiere cu extensia BPR sau BPK)
Reopen deschide un meniu care conine cele mai noi proiecte sau module utilizate
Save salveaz fiierul curent
Save As salveaz fiierul curent utiliznd un nume nou
Save Project As salveaz proiectul curent cu un nume nou
Save All salveaz toate fiierele deschise
Close nchide proiectul curent i toate fiierele asociate
Close All nchide toate fiierele deschise
Use Unit adaug unit-ul selectat la clauza uses a modulului activ
Print tiprete fiierul curent
Exit nchide proiectul i prsete mediul Delphi
Meniul Edit
Se utilizeaz pentru a manipula text sau componente n timpul crerii programului.
n meniu pot fi gsite urmtoarele opiuni:
Undo/Undelete anuleaz ultima aciune sau tergere
Redo anuleaz ultima operaie de undo
Cut mut obiectul selectat n Clipboard
Copy copiaz obiectul selectat n Clipboard
Paste copiaz coninutul Clipboard-ului la poziia cursorului
Delete terge obiectul selectat
Select All selecteaz toate componentele de pe fereastr (form)
Align to Grid Aliniaz componentele selectate la cel mai apropiat punct din gril
Bring to Front mut componenta selectat n fa
Send to Back mut componenta selectat n spate
Align aliniaz componentele
Size redimensioneaz componentele selectate
Scale redimensioneaz proporional toate componentele din fereastr
Tab Order modific ordinea n care se sare apsnd tasta Tab
Creation Order modific ordinea n care sunt create componentele nevizuale
3
Utilizare Delphi 5 autor Popa Daniel
Flip Children mut obiecte n oglind e util pentru cazul n care nu se citete de la
stnga la dreapta ci invers
Lock Controls Secures nepenete toate componentele n poziiile curente
Add to interface definete o nou metod, un nou eveniment, o nou proprietate
pentru o component ActiveX
Meniul Search
Meniul se utilizeaz pentru a cuta text, obiecte, erori, unit-uri, variabile i simboluri n
editorul de cod(fereastra n care se editeaz codul).
n acest meniu putem gsi opiunile:
Find caut un text specificat i marcheaz prima apariie a acestuia n editorul de cod
Find in Files caut textul specificat i afieaz fiecare potrivire n fereastra aflat sub
editorul de cod
Replace caut textul specificat i-l nlocuiee cu un altul
Search Again repet ultima cutare
Incremental Search caut textul pe msur ce este scris
Go to Line Number mut cursorul la linia specificat
Find Error caut ultima eroare de rulare
Browse Symbol caut dup un anumit simbol
Meniul View
Se utilizeaz pentru a afia sau ascunde diverse elemente ale mediului Delphi.
n meniu putem gsi urmtoarele opiuni:
Project Manager afieaz managerul de proiect, acesta poate fi utilizat pentru a
naviga prin fiierele proiectului, pentru a le copia, terge, aduga, salva.
Translation Manager afieaz managerul pentru traduceri
Object Inspector afieaz inspectorul de obiecte
To-Do List face vizibil lista cu ceea ce trebuie fcut n proiect
Alignment Palette afieaz o fereastr n care se gsesc opiuni destinate alinierii
obiectelor
Browser afieaz o fereastr n care pot fi vizualizate unit-urile i clasele utilizate n
proiect
Code Explorer face vizibil editorul de cod
Component List afieaz o list cu toate componentele Delphi-ului
Window List face vizibil o list cu toate ferestrele Delphi-ului care sunt deschise
Debug Windows afieaz un meniu din care pot fi alese ce ferestre pentru depanarea
programului vor fi afiate (puncte de ntrerupere, apeluri ale subprogramelor,
variabile, fire de execuie, module, CPU, FPU )
Desktops permite afiarea, salvarea sau tergerea diverselor moduri de aezare a
ferestrelor
Toggle Form/Unit comut ntre fereastr i unit-ul corespunztoe
Units afieaz o list cu toate unit-urile proiectului
Forms afieaz o list cu toate ferestrele(form) existente n proiect
Type Library afieaz editorul pentru librrii de tipuri (Type Library), util pentru a
crea tipuri de informaii pentru controale ActiveX, obiecte MTS i alte obiecte COM
New Edit Window deschide nc un editor de cod
Toolbars deschide un meniu din care pot fi selectate ce bare de butoane vor fi afiate
4
Utilizare Delphi 5 autor Popa Daniel
Meniul Project
Este utilizat pentru a compila o aplicaie. Pentru ca opiunile din meniu s poat fi folosite e
necesar s fie deschis un proiect.
n meniu avem urmtoarele comenzi:
Add to Project adaug un fiier proiectului
Remove from Project elimin un fiier din proiect
Import Type Library afieaz o list cu librriile de tipuri nregistrate n sistem
pentru a fi adugate la proiect.
Add to Repository adaug proiectul la lista de obiecte ce pot fi create, din meniul
File opiunea New.
View Source afieaz sursele proiectului n editorul de cod
Languages permite adugarea, eliminarea sau rennoirea DLL-urilor pentru limb
Add New Project adaug la proiect o nou aplicaie, un nou DLL
Add New Project adaug la proiect un altul existent
Compile project compileaz doar acele fiiere care au fost modificate de la ultima
compilare
Build project compileaz toate modulele proiectului
Syntax Check project verific sintactic toate modulele proiectului
Information for project afieaz informaii despre proiectul compilat (nr. de linii,
dimensiunea programului rezultat )
Compile All Projects compileaz toate fiierele care au fost modificate de la ultima
compilare n toate proiectele din grupul de proiecte
Build All Projects compileaz toate fiierele n toate proiectele din grupul de
proiecte
Web Deployment Option se utilizeaz pentru a configura controalele ActiveX sau
ActiveForm n vederea adugrii lor la serverul web.
Web deploy adaug controalele ActiveX sau ActiveForm, dup configurarea acestora
Options afieaz o fereastr de dialog n care se modific opiunile pentru compilare,
linkeditare etc.
Meniul Run
Meniul permite depanarea programelor.
n acest meniu se afl urmtoarele opiuni:
Run compileaz i execut aplicaia
Attach to Process afieaz o list cu procesele care pot fi depanate
Parameters de aici se pot specifica: parametrii cu care va fi lansat n execuie
aplicaia, executabilul corespunztor unu DLL, un calculator pentru depanarea la
distan
Register ActiveX Server adaug o intrare n regitrii Windows-ului pentru controlul
ActiveX , e valabil comanda atunci cnd avem un proiect ActiveX.
Unregister ActiveX Server terge intrarea n regitrii Windows-ului pentru controlul
ActiveX , e valabil comanda atunci cnd avem un proiect ActiveX.
Install MTS Object Instaleaz obiectele MTS din proiect ntr-um pachet MTS,
comand valabil doar dac proiectul curent este un obiect MTS(Microsoft transaction
server)
Step over execut un program linie cu linie, srind peste proceduri, tratndu-le ca
fiind o singur instruciune
Trace Into execut un program linie cu linie, intrnd n proceduri
5
Utilizare Delphi 5 autor Popa Daniel
Meniul Component
Din acest meniu se pot gestiona componentele instalate.
Opiunile acestui meniu sunt:
New Component deschide o fereastr cu ajutorul creia se pot crea noi componente
Install Component instaleaz o nou component existent
Import ActiveX Control adaug o librrie de tipuri de controale ActiveX
Create Component Template salveaz componente modificate ca abloane cu un nou
nume, o nou icoan, pe o nou pagin
Install Packages instaleaz un pachet de componente
Configure Palette deschide o fereastr din care se poate configura paleta de
componente, se pot terge, ascunde, muta componente dintr-o pagin n alta
Meniul Database
Din acest meniu se pot crea, modifica, urmri i vizualiza bazele de date.
Meniul conine urmtoarele opiuni:
Explore lanseaz n execuie Database Explorer sau SQL Explorer, cu ajutorul
crora se pot crea i manipula baze de date
SQL Monitor lanseaz SQL Monitor cu ajutorul cruia se pot urmri alocarea
resurselor i starea comenzilor date prin SQL Links
Form Wizard se utilizeaz pentru crearea rapid a unor ferestre de vizualizare a
bazelor de date
Meniul Tools
Meniul tools se utilizeaz pentru:
- A vizualiza sau modifica configuraia mediului de programare
- A vizualiza sau modifica configuraia depanatorului
- A modifica obiectele ce pot fi create cu Delphi-ul
- A modifica lista programelor ce apar n acest meniu
- A crea sau modifica tabele ale bazelor de date
- A crea sau modifica pachete de componente
- A crea sau modifica imagini
6
Utilizare Delphi 5 autor Popa Daniel
Meniul Help
Se utilizeaz pentru a accesa help-ul sistemului.
n acest meniu putem gsi urmtoarele opiuni:
Delphi Help deschide help-ul Delphi-ului
Delphi Tools deschide help-ul destinat uneltelor din Delphi.
Windows API/SDK Help deschide help-ul pentru apelurile API Windows
Borland Home Page salt la pagina web a Borland-ului (Inprise-ului)
Delphi Home Page salt la pagina web a Delphi-ului
Delphi Developer Support salt la pagina web destinat programatorilor
Delphi Direct legtur direct ctre pagina Delphi-ului
Customize permite gestionarea help-ului
About informaii despre copyright i versiune
Units Forms Toggle New form Run Pause Trace into Step over
7
Utilizare Delphi 5 autor Popa Daniel
8
Utilizare Delphi 5 autor Popa Daniel
Pagina Events
Este prevzut cu dou coloane:
- pe coloana stng sunt listate denumirile evenimentelor
- pe coloana dreapt avem procedurile ce trateaz evenimentele
Atribuirea unei valori se poate face n dou moduri:
- prin linia de editare, se d dublu clic pe coloana din dreapta, corespunztoare
evenimentului pe care dorim s-l tratm, iar Delphi-ul deschide editorul de cod i ne
permite scrierea codului ce se dorete a fi executat la apariia evenimentului respectiv.
Antetul procedurii(metodei) de tratare a evenimentului este scris automat de ctre
editor. Dac procedura aferent unui eveniment nu conine nici o linie de cod aceasta
va fi tears.
- prin list derulant, din care se poate alege o procedur care a fost definit de
programator anterior, dac de dorete s se execute aceeai rutin pentru mai multe
evenimente.
9
Utilizare Delphi 5 autor Popa Daniel
3. Gestiunea componentelor
10
Utilizare Delphi 5 autor Popa Daniel
Tab Order afieaz o fereastr de dialog cu ajutorul creia putem schimba ordinea
de parcurgere a componentelor, acesta se parcurg n ordine cu Tab sau cu Shift+Tab
n ordine invers
Creation Order afieaz o fereastr de dialog din care putem schimba ordinea de
creare a obiectelor
Lock blocheaz/deblocheaz o component
Comenzile Align to Grid, Bring to Front, Send to Back, Align, Size, Scale, Tab
Order, Creation Order mai pot fi gsite i n meniul care apare dac executm clic dreapta
pe un obiect.
Dac se dorete se poate face vizibil o palet de comenzi destinate alinierii obiectelor(
meniul View opiunea Alingment Palette).
11
Utilizare Delphi 5 autor Popa Daniel
4 Programarea n Delphi
4.1 Lecia 1 Programarea orientat pe obiect (OOP)
Ideea OOP este de a pune la un loc, ntr-un singur container, att datele ct i partea de
cod(proceduri i funcii, care poart denumirea de metode) . Containerul se numete obiect.
Obiectul relev utilizatorului (programatorului care utilizeaz obiectul) doar ceea ce
este necesar, astfel nct utilizarea obiectului s fie ct mai uoar. Toate mecanismele interne
pe care utilizatorul nu are nevoie s le cunoasc sunt ascunse. OOP permite o abordare
modular a programrii, ceea ce ne ferete de necesitatea rescrierii unor pri de cod.
O alt caracteristic important a obiectelor este motenirea. Prin motenire se nelege
acea proprietate a obiectelor prin care un obiect nou construit preia datele i metodele unui alt
obiect, printe. Aceast caracteristic ne permite scrierea rapid i uoar a unor obiecte
asemntoare, care au unele date i metode comune.
Se poate ntmpla ca anumite metode a unei clase s fie rescrise, astfel nct, chiar
dac o clas descendent are metode cu acelai nume, s fac cu totul altceva. Aceast
caracteristic poart denumirea de polimorfism.
1
n Pascal standard noiunea de clas nu exist, ea fiind nlocuit cu cea de obiect, de aici pot aprea anumite
confuzii. Definiia de mai sus e valabil pentru Delphi, nu i pentru Pascal.
12
Utilizare Delphi 5 autor Popa Daniel
Private un membru private este invizibil n afara clasei n care este declarat, altfel
spus o metod declarat ca fiind private nu poate fi apelat din alt modul, iar un cmp
sau proprietate nu pot fi citite sau scrise din alt modul
Protected un membru protected este vizibil doar n clasa n care a fost declarat i n
toate clasele descendente.
Public un membru public este vizibil n exteriorul clasei.
Published acest mod de acces este utilizat atunci cnd se scriu componente. Toi
membrii declarai n aceast zon vor fi vizibili n Object Inspector.
n scrierea programelor Delphi este utilizat foarte mult OOP deoarece se utilizeaz n
special componente. Aceste componente sunt obiecte (dar nu toate obiectele sunt
componente!) care fie sunt create de utilizator, fie sunt venite mpreun cu Delphi-ul, i pot fi
reutilizate n orice alt program.
Prezint mai jos o component TAnimate2 derivat din Tanimate :
type
TAnimate2 = class(TAnimate)
private
{ Private declarations, tot ceea ce e declarat mai jos nu e vizibil n afara clasei}
fhintimage:Tbitmap;
fhintcolor:Tcolor;
fshowimage:boolean;
{ Proceduri si functii}
procedure SetHintImage(v:Tbitmap);
procedure SetHintColor(v:Tcolor);
procedure setshowimage(v:boolean);
procedure afisimg(Sender:TObject);
procedure CMHintShow(var Message: TMessage); message CM_HINTSHOW;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
published
{ Published declarations }
{pentru a citi proprietatea HintImage se citete din variabila fhintimage, iar pentru a o scrie
se folosete procedura SetHintImage}
property HintImage:Tbitmap read fhintimage write SetHintImage;
{proprietatea de mai jos are definit i o valoare implicit(clwhite - culoarea alb)}
property HintTransparentColor:Tcolor read fhintcolor write SetHintColor default clwhite;
property ShowHintImage:boolean read fshowimage write SetShowImage default false;
property active;
property align;
property Anchors;
property Autosize;
property BorderWidth;
property Center;
property Color;
property CommonAVI;
property Constraints;
property Cursor;
property FileName;
property Height;
property HelpContext;
property Hint;
property Left;
13
Utilizare Delphi 5 autor Popa Daniel
property Name;
property ParentColor;
property ParentShowHint;
property Repetitions;
property ShowHint;
property StartFrame;
property StopFrame;
property Tag;
property Timers;
property Top;
property Transparent;
property Visible;
property Width;
{********Evenimente}
property OnClose;
property OnOpen;
property OnStart;
property OnStop;
property OnClick;
property OnMouseMove;
end;
n exemplul de mai sus ai observat c a aprut override, care ne indic c acea metod poate
fi rescris, astfel nct ntr-o clas derivat metoda respectiv va putea executa un cu totul alt
cod. Dac se dorete ca utilizatorul s fie obligat s rescrie metoda atunci se poate adug
virtual n dreptul metodei.
ntrebri i probleme
1. Ce este un obiect?
3. Ce este o clas?
14
Utilizare Delphi 5 autor Popa Daniel
Proprietile formelor
Proprietatea Action
Este utilizat pentru centralizarea rspunsurilor la comenzile date de utilizator.
Majoritii componentelor li se poate asocia o aciune, aciunile fiind centralizate i
gestionate folosind componenta ActionList din pagina standard.
Proprietatea ActiveControl
Este utilizat atunci, cnd pe form au fost aezate mai multe componente i se dorete
specificarea componentei care s fie n focar, n momentul iniial. Prin efectuarea unui
clic pe butonul sgeat jos situat n coloana de valori se poate deschide o list, care
conine numele tuturor componentelor formei, care pot fi n focar. Din lista afiat,
printr-un clic, se poate selecta componenta necesar. La un moment dat numai o singur
component poate s fie n focar. Proprietatea ActiveControl poate fi utilizat i n
execuie. Dac n aceast proprietate se ncarc un alt nume de component, atunci
componenta respectiv va fi pus n focar. Prin testarea valorii ataat acestei proprieti
se poate decide care anume component este n focar la un moment dat. Dac forma nu
este n focar, componenta memorat n ActiveControl desemneaz acea component,
care va ajunge n focar n momentul n care forma va reobine focarul.
Proprietatea Align
Se utilizeaz pentru a alinia componentele sus, la stnga, jos sau la dreapta pe o form
sau panel, acestea rmnnd pe poziie chiar dac forma sau panelul se redimensioneaz.
Valoarea implicit este alNone, ceea ce nseamn c obiectul rmne acolo unde a fost
poziionat.
Proprietatea Anchors
Se utilizeaz pentru a ne asigura c obiectul i pstreaz poziia relativ la marginile
printelui(a componentei care o conine), chiar dac componenta printe este redimensionat.
Cnd printele este redimensionat obiectul i pstreaz poziia relativ la marginile de care a
fost ancorat.
15
Utilizare Delphi 5 autor Popa Daniel
se alege valoarea False, nu se vor aeza n mod automat bare de defilare la forma
redimensionat. n acest caz ataarea barelor de defilare poate fi realizat prin
intermediul proprietilor HorzScrollBar.
Proprietatea AutoSize(boolean)
Se utilizeaz atunci cnd se dorete ca obiectul s se redimensioneze automat. Dac e
pus pe true atunci se redimensioneaz automat dac coninutul se schimb.
Proprietatea BidiMode
Permite ajustarea modului de afiare i a comportamentului automat atunci cnd
aplicaia ruleaz ntr-o zon n care se citete de la dreapta la stnga i nu de la stnga la
dreapta.
Proprietatea BorderStyle
Se refer la stilul chenarului formei. Valorile posibile ale acestei proprieti sunt
urmtoarele:
Valoare Semnificaie
bsDialog Chenar neredimensionabil; chenarul standard al ferestrelor de dialog.
bsSingle Chenar neredimensionabil, desenat cu o linie simpl.
bsNone Chenar neredimensionabil, desenat cu linie invizibil.
bsSizeable Chenar redimensionabil standard.
bsToolWindow Similar cu bsSingle, dar este prevzut cu un mic titlu.
bsSizeToolWin Similar cu bsSizeable, dar este prevzut cu un mic tilu.
16
Utilizare Delphi 5 autor Popa Daniel
Proprietatea Constraints
Se utilizeaz pentru a stabili dimensiunea minim i maxim pentru o component.
Aceste dimensiuni nu pot fi depite.
Proprietatea Cursor
Stabilete imaginea utilizat pentru reprezentarea cursorului mouse-ului.
Pentru selectarea unei imagini se vor folosi diferitele constante predefinite de descriere
a cursorului. Valoarea implicit este constanta crDefault.
Proprietatea DefaultMonitor
Stabilete pe care monitor va fi afiat forma, n cazul aplicaiilor multimonitor.
Proprietatea DockSite
Stabilete dac forma poate fi inta unei operaii drag-and-dock(trage i stabilete)
Proprietatea DragKind
Se folosete pentru a stabili dac se iau obiecte de pe control(drag) sau se pot pune pe
el(dock).
17
Utilizare Delphi 5 autor Popa Daniel
Proprietatea FormStyle
Stabilete stilul formei. Valorile posibile ale acestei proprieti sunt urmtoarele:
Valoare Semnificaie
fsNormal Forma creaz o fereastr normal (nici MDI copil, nici MDI printe).
Valoare implicit.
fsMDIChild Forma creaz o fereastr MDI copil
fsMDIForm Forma creaz o fereastr MDI printe
fsStayOnTop Forma va fi afiat deasupra celorlalte forme utilizate n proiect.
Proprietatea HelpContext
Se folosete pentru a stabili un numr folosit n apelarea ajutorului(Help) context-
senzitiv, pentru a determina care fereastr de ajutor este afiat dac utilizatorul apas tasta
F1. Dac HelpContext are valoarea 0 atunci va fi afiat fereastra de ajutor corespunztoare
printelui.
Proprietatea HelpFile
Specific fiierul n care se afl ajutorul.
18
Utilizare Delphi 5 autor Popa Daniel
Proprietatea Icon
Specific simbolul grafic care va fi utilizat atunci cnd forma este minimizat.
Proprietatea Name
Numele componentei. Orice component trebuie s aib un nume unic.
Proprietatea ObjectMenuItem
Se utilizeaz pentru a afla sau a preciza o opiune dintr-un meniu care devine activ sau
inactiv atunci cnd un obiect OLE de pe formular este selectat sau deselectat.
Proprietatea ParentBidiMode(boolean)
Stabilete dac controlul folosete aceeai valoare pentru BidiMode ca i printele.
19
Utilizare Delphi 5 autor Popa Daniel
Proprietatea ParentFont(boolean)
Stabilete dac controlul folosete acelai font ca i printele
Proprietatea PixelPerInch
Se utilizeaz n timpul rulrii programului pentru a modifica scara de mrire a formei la
rezoluia curent. Dac valoarea este modificat fa de valoarea implicit, forma nu va
avea aceleai proporii la diferite rezoluii. Pentru a avea efect trebuie ca proprietatea
Scaled s fie true.
Proprietatea Position
Se refer la dimensiunea formei i al locul de plasare a acesteia la execuie, fa de
locul i dimensiunea care au fost utilizate n momentul realizrii proiectului. Valorile posibile
sunt:
Valoare Semnificaie
poDesigned Forma va avea aceeai poziie i dimensiuni ca n momentul
elaborrii proiectului.
poDefault Poziia i dimensiunea ferestrei vor fi stabilite de ctre Windows
poDefaultPosOnly Poziia este stabilit de ctre Windows, se pstreaz dimensiunile.
poDefaultSizeOnly Poziia este pstrat, Windows-ul alege dimensiunile.
poScreenCenter Dimensiunile ferestrei se pstreaz, plasndu-se n centrul ecranului.
Se fac ajustri pentru aplicaiile multimonitor.
po Dimensiunile ferestrei se pstreaz, plasndu-se n centrul ecranului.
Nu se fac ajustri pentru aplicaiile multimonitor.
PoMainFormCenter Dimensiunile ferestrei se pstreaz, plasndu-se n centrul ferestrei
principale a aplicaiei. Nu se fac ajustri pentru aplicaiile
multimonitor.
PoOwnerFormCenter Dimensiunile ferestrei se pstreaz, plasndu-se n centrul ferestrei
specificate de proprietatea Owner.
Proprietatea PrintScale
Se utilizeaz pentru a afla sau stabili proporiile ferestrei tiprite. Valorile posibile
sunt:
Valoare Semnificaie
poNone Nu se scaleaz deloc.
poProportional Fereastra este scalat astfel nct imaginea tiprit are aproximativ
aceeai dimensiune ca i pe ecran.
poPrintToFit Forma este tiprit folosind aceleai proporii ca pe ecran, dar
modificate astfel nct s ncap pe pagin.
Proprietatea Scaled
Specific dac forma va fi redimensionat n funcie de valoarea PixelsPerInch
20
Utilizare Delphi 5 autor Popa Daniel
Proprietatea ShowHint
Dac are valoarea true atunci va fi afiat o scurt informaie(Hint) despre obiectul
deasupra cruia s-a oprit mouse-ul.
Proprietatea Tag
Utilizat pentru memorarea unei valori ntregi. Nu are un rol predestinat.
Proprietatea UseDockManager
Stabilete dac se utilizeaz un manager pentru operaia de drag-and-dock.
Proprietatea Visible
Dac este true atunci componenta este vizibil.
Proprietatea WindowMenu
Se folosete pentru a alfa sau stabili ce meniu se utilizeaz pentru o fereastr printe
n cazul aplicaiilor MDI(multiple document interface).
Proprietatea WindowState
Se refer la modul de afiare pe ecran a ferestrei. Poate avea urmtoarele valori
Valori Semnificaie
wsNormal Fereastra este afiat normal.
wsMinimized Fereastra este afiat miminizat
wsMaximized Fereastra este afiat maximizat.
Metode
Metoda BringToFront
Aduce forma n fa.
Metoda Close
Se utilizeaz pentru nchiderea formei.
Metoda Hide
Ascunde forma.
Metoda SendToBack
Trimite forma n spatele tuturor ferestrelor existente pe ecran.
Metoda SetFocus
Se utilizeaz pentru a selecta obiectul(controlul).
21
Utilizare Delphi 5 autor Popa Daniel
Metoda Show
Face vizibil forma.
Evenimente
Pentru fiecare dintre evenimentele prezentate mai jos Delphi-ul ne permite s scriem o
rutin care s trateze evenimentul respectiv. Dac n Object Inspector executm dublu clic pe
unul dintre evenimente Delphi-ul va deschide editorul de cod n care a scris deja antetul
procedurii care va trata evenimentul, noi urmnd s scriem partea de cod care va trata
evenimentul. Procedura de tratare a evenimentului va avea cel puin un parametru
Sender:TObject care ne va indica cine a generat evenimentul, parametru care n general nu e
folosit. Dac mai sunt necesari anumii parametri pentru a trata evenimentul atunci acetia vor
fi inclui, spre exemplu pentru evenimentul OnKeyPress, care apare la apsarea unei taste, va
fi transmis ca parametru i tasta(caracterul) care a care a fost apsat.
Evenimentul OnActivate
Apare atunci cnd forma devine activ.
Evenimentul OnCanResize
Apare atunci cnd se redimensioneaz controlul. Avem posibilitatea s stabilim noile
dimensiuni (NewWidth, NewHeight :Integer) i s stabilim dac suntem de acord cu
redimensionarea (Resize:Boolean)
Evenimentul OnClick
Apare atunci cnd utilizatorul execut clic pe form.
Evenimentul OnClose
Apare la nchiderea formei. Modificnd parametrul Action avem posibilitatea de a
decide ce se va executa. Parametrul Action poate avea valorile:
Valoare Descriere
caNone Forma nu are voie s se nchid, deci nu se ntmpl nimic.
caHide Forma va fi ascuns. Aplicaia o mai poate accesa.
caFree Forma este nchis, iar memoria alocat ei va fi eliberat
caMinimize Forma va fi minimizat.
Evenimentul OnCloseQuery
Apare cnd metoda Close a fost apelat. Prin modificarea parametrului
CanClose:Boolean decidem dac forma se poate nchide sau nu.
Evenimentul OnConstrainedResize
Apare imediat dup evenimentul OnCanResize. Se utilizeaz pentru aplicarea
limitrilor dimensiunilor, parametrii MinWidth, MinHeight, MaxWidth, MaxHeight stabilind
lungimea minim, nlimea minim, lungimea maxim, nlimea maxim. La ieirea din
procedura de tratare a evenimentului vor fi aplicate constrngerile i se vor obine noile
dimensiuni, dup care va apare evenimentul OnResize care va permite ajustrile finale.
Evenimentul OnContextPopup
Apare la clic dreapta. Parametrul MousePos:Tpoint ne va indica poziia mouse-ului ,
iar valoare pe care o vom atribui parametrului Handle:Boolean va decide dac va fi afiat
22
Utilizare Delphi 5 autor Popa Daniel
Evenimentul OnCreate
Apare la crearea formei.
Evenimentul OnDblClick
Apare atunci cnd utilizatorul execut dubclu clic pe form.
Evenimentul OnDeactivate
Apare cnd forma pierde focusul.
Evenimentul OnDestroy
Apare cnd forma este distrus.
Evenimentul OnDockDrop
Apare cnd un obiect este depus pe form prin operaia de drag-and-dock. Ca
parametri vom avea Source care ne va indica de unde a fost luat obiectul, i poziia la care a
fost lsat X, Y.
Evenimentul OnDockOver
Apare cnd un obiect este tras peste form pentru o operaie de drag-and-dock. Ca
parametri vom avea Source care ne va indica de unde a fost luat obiectul, poziia la care se
afl X, Y i Accept care dac are valoarea true se accept operaia, altfel nu.
Evenimentul OnDragDrop
Apare cnd utilizatorul d drumul obiectului adus prin operaia de drag-and-drop. Ca
parametri vom avea Source care ne va indica de unde a fost luat obiectul, i poziia la care a
fost lsat X, Y.
Evenimentul OnDragOver
Apare cnd un obiect este tras peste form pentru o operaie de drag-and-drop. Ca
parametri vom avea Source care ne va indica de unde a fost luat obiectul, poziia la care se
afl X, Y i Accept care dac are valoarea true se accept operaia, altfel nu.
Evenimentul OnEndDock
Apare cnd operaia de tragere s-a terminat. Se utilizeaz pentru a trata situaia n care
operaia de drag-and-dock s-a terminat.
Evenimentul OnGetSiteInfo
Apare nainte de OnDockDrop dac proprietate DockSite este true.
Evenimentul OnHelp
Apare cnd forma primete o cerere de ajutor (Help).
Evenimentul OnHide
Apare atunci cnd forma este ascuns(spre exemplu dac Visible ia valoarea false)
Evenimentul OnKeyDown
23
Utilizare Delphi 5 autor Popa Daniel
Apare la apsarea unei taste, dac componenta(n acest caz forma) este selectat.
Parametrul Key ne d codul tastei apsate, iar parametrul Shift, care poate avea valorile
ssShift, ssAlt, ssCtrl, ne indic care dintre tastele Shift, Ctrl sau Alt a mai fost apsat odat
cu tasta. Pentru tastele care nu sunt litere sau cifre se pot folosi codurile virtuale (ex.
VK_PAUSE, VK_RETURN, VK_ESCAPE )
Evenimentul OnKeyPress
Apare dac utilizatorul apas o tast care genereaz un singur caracter. Parametrul
Key conine caracterul tastei apsate. Dac a fost apsat o combinaie de taste, spre ex.
Shift+F1, nu provoac acest eveniment.
Evenimentul OnKeyUp
Apare la eliberarea unei taste, dac componenta(n acest caz forma) este selectat.
Parametrul Key ne d codul tastei apsate, iar parametrul Shift ne indic care dintre tastele
Shift, Ctrl sau Alt a mai fost apsat odat cu tasta. Pentru tastele care nu sunt litere sau cifre
se pot folosi codurile virtuale (ex. VK_PAUSE, VK_RETURN, VK_ESCAPE )
Evenimentul OnMouseDown
Apare la apsarea unui buton al mouse-ului. Parametrul Button poate avea valorile
mbLeft, mbRight, mbMiddle i ne indic care dintre butoanele mouse-ului au fost apsate.
Parametrul Shift ne indic care dintre butoanele Ctrl, Shift sau Alt au fost apsate, iar
parametrii X, Y ne indic poziia mouse-ului.
Evenimentul OnMouseMove
Apare la micarea mouse-ului peste un control(n acest caz form). Parametrul Shift ne
indic care dintre tastele Shift, Alt, Ctrl au fost apsate, iar parametrii X, Y ne indic poziia
mouse-ului.
Evenimentul OnMouseUp
Apare la eliberarea unui buton al mouse-ului. Parametrul Button poate avea valorile
mbLeft, mbRight, mbMiddle i ne indic care dintre butoanele mouse-ului au fost apsate.
Parametrul Shift ne indic care dintre butoanele Ctrl, Shift sau Alt au fost apsate, iar
parametrii X, Y ne indic poziia mouse-ului.
Evenimentul OnMouseWheel
Apare cnd rotia mouse-ului este rotit, dac evenimentul nu este tratat (parametrul
Handle are valoare False) atunci apare evenimentul OnMouseWheelUp sau evenimentul
OnMouseWheelDown, n funcie de direcia n care este nvrtit rotia. Parametrul Shift ne
indic care dintre tastele Ctlr, Alt sau Shift au fost apsate, parametrul WheelDelta ne indic
de cte ori a fost nvrtit rotia.
Evenimentul OnMouseWheelDown
Apare la nvrtirea rotiei n jos, dac evenimentul OnMouseWheel nu a fost tratat.
Procedura are aceei parametri ca i cea ce trateaz evenimentul OnMouseWheel
Evenimentul OnMouseWheelUp
Apare la nvrtirea rotiei n sus, dac evenimentul OnMouseWheel nu a fost tratat.
Procedura are aceei parametri ca i cea ce trateaz evenimentul OnMouseWheel
Evenimentul OnPaint
24
Utilizare Delphi 5 autor Popa Daniel
Evenimentul OnResize
Apare la redimensionarea formei.
Evenimentul OnShortCut
Apare la apsarea unei taste nainte de evenimentul OnKeyDown. Se utilizeaz pentru
a trata short-cut-urile nainte de a trata apsrile obinuite de taste.
Evenimentul OnShow
Apare atunci cnd forma este fcut vizibil.
Evenimentul OnStartDock
Apare atunci cnd utilizatorul ncepe s trag un obiect peste control, iar proprietatea
DragKind are valoarea dkDock.
Evenimentul OnUnDock
Apare atunci cnd utilizatorul ncearc s ia un obiect ce se afl pe form. Parametrul
Client ne indic obiectul ce va fi luat, parametrul NewTarget ne indic unde va fi dus
obiectul, iar parametrul Allow l folosim pentru a permite operaia (dac i atribuim true), sau
a o interzice.
Probleme i ntrebri
25
Utilizare Delphi 5 autor Popa Daniel
Deoarece o mare parte din proprietile, metodele i evenimentele butoanelor sunt comune cu
cele de la form voi trata doar ceea ce apare nou.
4.3.1 Button(TButton)
Proprietile butonului
Proprietatea Action
Este utilizat pentru centralizarea rspunsurilor la comenzile date de utilizator.
Majoritii componentelor li se poate asocia o aciune, aciunile fiind centralizate i gestionate
folosind componenta ActionList din pagina standard.
Proprietatea Anchors
Se utilizeaz pentru a ne asigura c obiectul i pstreaz poziia relativ la marginile
printelui(a componentei care o conine), chiar dac componenta printe este redimensionat.
Cnd printele este redimensionat obiectul i pstreaz poziia relativ la marginile de care a
fost ancorat.
Proprietatea BidiMode
Permite ajustarea modului de afiare i a comportamentului automat atunci cnd
aplicaia ruleaz ntr-o zon n care se citete de la dreapta la stnga i nu de la stnga la
dreapta.
Proprietatea Cancel(boolean)
Dac are valoarea true atunci la apsarea butonului Escape va avea loc evenimentul
OnClick
26
Utilizare Delphi 5 autor Popa Daniel
caz litera precedat de caracterul & este litera de selecie a componentei (litera de selecie
este subliniat i componenta poate fi selectat prin combinaia Alt litera subliniat).
Proprietatea Constraints
Se utilizeaz pentru a stabili dimensiunea minim i maxim pentru o component.
Aceste dimensiuni nu pot fi depite.
Proprietatea Cursor
Stabilete imaginea utilizat pentru reprezentarea cursorului mouse-ului.
Pentru selectarea unei imagini se vor folosi diferitele constante predefinite de descriere a
cursorului. Valoarea implicit este constanta crDefault.
Proprietatea Default
Dac are valoarea true atunci la apsarea tastei Enter va avea loc evenimentul
OnClick.
Proprietatea DragCursor
Specific ce imagine s fie utilizat pentru buton atunci cnd acesta este tras (dragg)
Proprietatea DragKind
Se folosete pentru a stabili dac se iau obiecte de pe control(drag) sau se pot pune pe
el(dock).
Proprietatea DragMode
Stabilete dac utilizatorul poate executa operaia de drag(tragere). Dac valoarea
proprietii este dnManual utilizatorul nu poate executa operaia, iar dac valoarea proprietii este
dmAutomatic atunci poate executa operaia de drag.
27
Utilizare Delphi 5 autor Popa Daniel
Proprietatea HelpContext
Se folosete pentru a stabili un numr folosit n apelarea ajutorului(Help) context-
senzitiv, pentru a determina care fereastr de ajutor este afiat dac utilizatorul apas tasta
F1. Dac HelpContext are valoarea 0 atunci va fi afiat fereastra de ajutor corespunztoare
printelui.
Proprietatea ModalResult
Proprietatea se poate utiliza pentru a nchide o fereastr modal (care a fost fcut
vizibil cu metoda ShowModal), returnnd valoarea din ModalResult n cmpul ModalResult
al ferestrei modale. Nu este necesar s scriem cod care s trateze apsarea butonului. Pentru
clarificare vezi Exemplul 1.
Proprietatea poate avea mai multe valori:
Constant Valoare Ce face
mrNone 0 Nimic
MrOk idOK Utilizatorul a ieit apsnd butonul OK
mrCancel idCancel Utilizatorul a ieit apsnd butonul CANCEL
mrAbort idAbort Utilizatorul a ieit apsnd butonul ABORT
mrRetry idRetry Utilizatorul a ieit apsnd butonul RETRY
mrIgnore idIgnore Utilizatorul a ieit apsnd butonul IGNORE
MrYes idYes Utilizatorul a ieit apsnd butonul YES
MrNo idNo Utilizatorul a ieit apsnd butonul NO
Proprietatea ParentShowHint(boolean)
Se utilizeaz pentru a ne asigura c fie toate componentele afieaz Hint-ul fie toate nu
l afieaz. Dac ParentShowHint e true atunci obiectul foloseste ShowHintul printelui,
altfel decizia de a afia Hint-ul va fi luat n funcie de ShowHint-ul propriu.
Proprietatea TabOrder
Poate lua valori n intervalul 1..32767 i stabilete la a cta apsare a tastei Tab se
ajunge la obiectul(controlul) respectiv. Primul obiect adugat are valoarea proprietii
TabOrder 0, urmtorul 1, al treilea 2 s.a.m.d.
Proprietatea TabStop(boolean)
Se folosete pentru a permite sau interzice accesul la control prin folosirea tastei Tab.
Metode
Metoda Click
Simuleaz apsarea butonului.
Evenimente
Evenimentul OnEnter
Apare atunci cnd controlul(n cazul nostru butonul) primete focus-ul, spre exemplu
cnd se ajunge cu Tab pe el.
Evenimentul OnExit
28
Utilizare Delphi 5 autor Popa Daniel
Apare atunci cnd controlul pierde focus-ul, spre exemplu cnd un alt control de pe
fereastr primete focus-ul.
Pentru lmuriri vezi exemplul 2.
Exemple
Exemplul 1
Urmtoarea aplicaie va folosi proprietatea ModalResult a butonului.
Creai o nou aplicaie care are dou form-uri(ferestre): Form1 i Form2.
Exemplul 2
Pentru a ilustra folosirea evenimentelor OnEnter i OnExit creai o nou aplicaie pe a
crei fereastr punei dou butoane: Button1 i Button2, iar pentru Button2 scriei codul
urmtor pentru tratarea evenimentelor OnEnter i OnExit:
Compilai programul, lansai-l n execuie dup care trecei de la un buton la altul folosind
tasta Tab.
4.3.2 BitBtn(TBitBtn)
Are aceleai proprieti, metode i evenimente ca i butonul clasic, n plus adugndu-
se posibilitatea de a avea o imagine(bitmap) pe buton.
Proprieti
29
Utilizare Delphi 5 autor Popa Daniel
Proprietatea Glyph
Care stabilete ce imagine va fi afiat pe buton. Putem avea maxim patru imagini n
fiierul bitmap, toate imaginile fiind de aceeai dimensiune, aezate pe aceeai linie una lng
cealalt. Pe buton va fi afiat una dintre imagini n funcie de starea butonului.
Poziia Starea Descriere
imaginii butonului
Prima Sus Aceasta imagine apare dac butonul e n poziia ridicat. Dac nu
exist alte imagini atunci aceast imagine este utilizat i pentru
celelalte stri.
A doua Dezactivat Apare dac butonul nu poate fi selectat (proprietatea enable = false)
A treia Apsat Apare cnd s-a fcut clic pe buton.
A patra Jos Apare dac butonul a rmas jos.
Proprietate Kind
Stabilete ce imagine se va afia pe buton, precum i valoarea ModalResult. Poate
avea urmtoarele valori:
Valoare Buton Descriere
Va fi afiat imaginea din Glyph, valoarea ModalResult trebuie
bkCustom
stabilit manual
bkAbort Se poate utiliza pentru anularea unei aciuni.
Proprietatea Layout
Stabilete poziia imaginii pe buton. Poate avea urmtoarele valori:
Valoare Descriere
blGlyphLeft Pune imaginea n partea stng a textului.
BlGlyphRight Pune imaginea n partea dreapt a textului.
BlGlyphTop Pune imaginea deasupra textului.
BlGlyphBottom Pune imaginea sub text.
Proprietatea Margin
30
Utilizare Delphi 5 autor Popa Daniel
Stabilete distana, n pixeli, ntre imagine i marginea butonului. Dac valoarea este
1 (valoare implicit) atunci imaginea i textul vor fi centrate
Proprietatea NumGlyphs
Indic numrul de imagini care se afl n bitmap-ul memorat n Glyph. Numrul de
imagini poate fi ntre 1(valoare implicit) i 4.
Proprietatea Spacing
Stabilete numrul de pixeli dintre imagine i text, implicit are valoarea 4. Dac are
valoarea 1 atunci textul va fi centrat ntre imagine i marginea butonului.
Proprietatea Style
Determin modul n care este afiat imaginea pe buton. Poate avea urmtoarele
valori:
Valoare Descriere
bsAutoDetect Dac folosim Windows 3.1 bitmap-ul va avea nfiarea din Windows 3.1,
altfel va avea noua nfiare.
bsWin31 Va folosi nfiarea standard din Windows 3.1
bsNew Va folosi noua nfiare
4.3.3 SpeedButton(TSpeedButton)
Fa de butonul clasic TSpeedButton-ul introduce proprieti care s-i permit lucrul
n grupuri de butoane, spre exemplu n bare de butoane.
Proprieti
Proprietatea AllowAllUp
Determin dac toate butoanele ce fac parte dintr-un grup pot s fie toate ridicate
simultan sau nu. Dac are valoare true atunci butoanele ce fac parte din acelai grup pot fi
toate ridicate, altfel unul dintre butoane va fi apsat, iar la apsarea unui alt buton butonul
apsat se va ridica. Dac cmpul GroupIndex este 0 atunci AllowAllUp nu are nici un efect.
Proprietatea Down
Se folosete pentru a afla dac butonul este apsat sau nu. Proprietatea este valabil
doar dac proprietatea GroupIndex este diferit de 0.
Proprietatea Flat
Dac are valoarea true butonul nu va fi afiat 3D. Dac proprietatea are valoarea true
putem folosi imagini(bitmap) care s ilustreze starea butonului.
Proprietatea GroupIndex
Permite s selectm din ce grup face parte butonul. Dac are valoarea 0 atunci fiecare
buton acioneaz separat, iar dac are o valoare mai mare ca 0 atunci desemneaz numrul
grupului din care face parte butonul. Dac utilizatorul apas un buton din grup acesta rmne
apsat pn cnd un alt buton din grup va fi apsat.
Proprietatea Transparent
Specific dac fundalul butonului este transparent sau nu.
31
Utilizare Delphi 5 autor Popa Daniel
ntrebri i probleme
2. S se scrie o aplicaie care afind o fereastr pe care se afl un buton care fuge ori
de cte ori utilizatorul a ajuns cu mouse-ul pe el, dar nu poate iei n afara ferestrei.
3. S se scrie o aplicaie care afieaz o fereastr pe care se afl trei butoane din care
unul singur poate fi selectat la un moment dat i care afieaz un mesaj, ca titlu al
ferestrei, n funcie de ce buton este apsat.
32
Utilizare Delphi 5 autor Popa Daniel
Proprieti
Proprietatea AutoFocus
Dac are valoarea true atunci textul va fi selectat cnd controlul va primi focus-ul. Se
pune pe valoarea true dac e mai probabil ca utilizatorul s nlocuiasc textul existent dect s
adauge ceva la el.
Proprietatea AutoSize
Dac are valoarea true atunci controlul i va modifica nlimea dac nlimea
textului se schimb, dac nu exist posibilitatea ca textul s fie trunchiat.
Proprietatea BorderStyle
Determin dac controlul va avea o bordur, i atunci are valoarea bsSingle, sau nu, i
atunci are valoarea bsNone.
Proprietatea CharCase
Determin ce fel de litere se pot folosi(mari, mici sau combinat). Proprietatea poate
lua urmtoarele valori:
Valoare Descriere
ecLowerCase Literele sunt transformate n litere mici
ecNormal Se pot utiliza att litere mari ct i litere mici
ecUpperCase Literele sunt transformate n litere mari
Proprietatea HideSelection
Determin dac textul rmne selectat atunci cnd controlul pierde focusul. Dac are
valoare false atunci la pierderea focusului textul rmne selectat. Se poate accesa textul
selectat prin intermediul proprietii SelText. Poziia de nceput a seleciei este memorat n
proprietatea SelStart, iar lungimea textului selectat e memorat n SelLength.
Proprietatea MaxLength
Stabilete numrul maxim de caractere ce poate fi introdus. Dac are valoarea 0 atunci
nu exist nici un fel de limitare.
Proprietatea OEMConvert
Dac are valoare true atunci caracterelor vor fi traduse din ANSI n OEM i invers
pentru a elimina caracterele ce nu pot fi folosite la denumirea unui fiier.
33
Utilizare Delphi 5 autor Popa Daniel
Proprietatea PasswordChar
Specific ce caracter se va afia dac se dorete citirea unei parole care nu trebuie s
apar pe ecran. Dac are valoarea #0 atunci caracterele se vor afia normal.
Proprietatea ReadOnly
Dac are valoarea true nu se va putea modifica coninutul Edit-ului.
Proprietatea Text
Conine textul ce se afieaz n Edit. Proprietatea poate fi utilizat pentru a prelua ceea
ce a tastat utilizatorul.
34