1
Introducere in Delphi
1.Introducere
Lucrarea este destinata
celor care doresc sa
dezvolte aplicatii Windows
utilizand mediul de programare Delphi. Am
ales Delphi-ul deoarece este usor
de invatat, fiind foarte asemanator cu
limbajul Pascal care este predat in
liceu. Un alt motiv pentru care
am ales mediul Delphi este ca in
urma compilarii programelor se obtin
executabile mici ce ruleaza rapid si
nu necesita librarii ca sa poata
rula(un program similar scris in
Visual Basic necesita cca. 5 Megabytes de librarii).
Pentru a putea intelege si folosi
acest manual este necesar ca
utilizatorul sa cunoasca bine limbajul
Pascal, deoarece Delphi-ul este practic
limbajul Pascal orientat pe obiect. Cu
toate ca Delphi-ul este un limbaj
orientat pe obiect nu este necesara
cunoasterea principiilor programarii intr-un
astfel de limbaj pentru realizarea
unor programe simple. Daca se doreste
realizarea unor componente pentru Delphi
sau modificarea unora dintre cele
existente atunci este necesara cunoasterea principiilor
programarii intr-un limbaj orientat pe obiect.
Am ales pentru prezentare Delphi 5
Enterprise Edition deoarece este varianta
cea mai completa, celelalte variante
:Professional Edition, Standard Edition
fiind variante prescurtate, care nu contin toate
facilitatile variantei Enterprise.
•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 minima),
recomandabil 250 Mb •Monitor VGA, recomandabil SVGA cuorezolutie de
800x600 •Mouse Resursele necesare instalarii si rularii Delphi-ului
sunt:
•CD-ROM
2. Prezentarea mediului DELPHI 5
La pornirea Delphi-ului acesta va arata ca in figura de mai jos:
Bara de meniuri Bare butoane Paleta
de componente Pagini ale paletei de componente
Inspectorul de obiecte Fereastra proiectului nou
inceput
Din bara de meniuri pot fi
accesate meniurile Delphi-ului, bara de
butoane permitand accesul rapid la principalele comenzi.Paleta de
comenzi permite accesul rapid la cele peste 200 de componente ale
mediului Delphi. Pentruomai buna gestionare
a componentelor acestea sunt impartite
pe mai multe pagini, existand si posibilitatea adaugarii
unor pagini noi si a unor componente noi.In partea stanga a imaginii
poate fi observat inspectorul de obiecte (object inspector)
cu ajutorul caruia pot fi
modificate proprietatile obiectelor(Properties)
si pot fi stabilite ce rutine (proceduri) vor
fi executate in momentul aparitiei unor evenimente(Events).
2.1 Principalele meniuri si comenzi(bara de meniuri)
Meniul File
Se utilizeaza a deschide, salva,
inchide, tipari proiecte sau fisiere
noi sau existente, pentru adaugarea unor noi
ferestre(form) sau unitati de program(unit) proiectului deschis In
meniu putem gasi urmatoarele optiuni:
•New - deschideofereastra de dialog
de unde putem alege ce obiect
dorim sa cream, sau putem selecta un vrajitor (wizard) care
sa ne ajute la crearea unui nou obiect.
•New Application - creeaza un nou
proiect care contineofereastra goala, un unit
si un fisier de proiect.
•New Form - creeazaofereastra goala sioadauga proiectului curent
•New Frame - creeaza
un nou frame (fereastra
invizibila destinata componentelor
nevizuale aflate in proiect, se
utilizeaza pentruomai buna gestiune a
componentelor folosite in cadrul proiectului) pentru proiectul curent
•Open - deschideofereastra de dialog
pentru incarcarea unui proiect,
fereastra, unit sau fisier text.
•Open Project - deschideofereastra de dialog pentru incarcarea unui
proiect existent ( fisiere cu extensia BPR sau BPK)
•Reopen - deschide un meniu care contine cele mai noi proiecte sau
module utilizate •Save - salveaza fisierul curent
•Save As - salveaza fisierul curent utilizand un nume nou
•Save Project As - salveaza proiectul curent cu un nume nou •Save All -
salveaza toate fisierele deschise
•Close - inchide proiectul curent si toate fisierele asociate •Close
All - inchide toate fisierele deschise
•Use Unit - adauga unit-ul selectat la clauza uses a modulului activ
•Print - tipareste fisierul curent
•Exit - inchide proiectul si paraseste mediul Delphi
Meniul Edit
Se utilizeaza pentru a manipula text sau componente in timpul crearii
programului. In meniu pot fi gasite urmatoarele optiuni:
•Undo/Undelete - anuleaza ultima actiune sau stergere •Redo - anuleaza
ultima operatie de undo
•Cut - muta obiectul selectat in Clipboard
•Copy - copiaza obiectul selectat in Clipboard
•Paste - copiaza continutul Clipboard-ului la pozitia cursorului
•Delete - sterge obiectul selectat
•Select All - selecteaza toate componentele de pe fereastra (form)
•Align to Grid - Aliniaza componentele selectate la cel mai apropiat
punct din grila •Bring to Front - muta componenta selectata in fata
•Send to Back - muta componenta selectata in spate •Align - aliniaza
componentele
•Size - redimensioneaza componentele selectate
•Scale - redimensioneaza proportional toate componentele din fereastra
•Tab Order - modifica ordinea in care se sare apasand tasta Tab
•Creation Order - modifica ordinea in care sunt create componentele
nevizuale
•Flip Children - muta obiecte "in oglinda" e util pentru cazul in care
nu se citeste de la stanga la dreapta ci invers
•Lock Controls Secures - "intepeneste" toate componentele in pozitiile
curente
•Add to interface - definesteonoua
metoda, un nou eveniment,onoua proprietate
pentruocomponenta ActiveX
Meniul Search
Meniul se utilizeaza pentru a cauta
text, obiecte, erori, unit-uri, variabile
si simboluri in editorul de cod(fereastra in care se
editeaza codul). In acest meniu putem gasi optiunile:
•Find - cauta un text specificat si marcheaza prima aparitie a acestuia
in editorul de cod •Find in Files - cauta textul specificat si afiseaza
fiecare potrivire in fereastra aflata sub
•Replace - cauta textul specificat si-l inlocuiese cu un altul •Search
Again - repeta ultima cautare editorul de cod
•Incremental Search - cauta textul pe masura ce este scris •Go to Line
Number - muta cursorul la linia specificata •Find Error -cauta ultima
eroare de rulare
•Browse Symbol - cauta dupa un anumit simbol
Meniul View
Se utilizeaza pentru a afisa sau ascunde diverse elemente ale mediului
Delphi. In meniu putem gasi urmatoarele optiuni:
•Project Manager - afiseaza managerul
de proiect, acesta poate fi
utilizat pentru a naviga prin fisierele proiectului, pentru
a le copia, sterge, adauga, salva.
•Translation Manager - afiseaza managerul pentru traduceri
•Object Inspector - afiseaza inspectorul de obiecte •To-Do List - face
vizibila lista cu ceea ce trebuie facut in proiect
•Alignment Palette - afiseazaofereastra
in care se gasesc optiuni destinate
alinierii obiectelor
•Browser - afiseazaofereastra in care pot fi vizualizate unit-urile si
clasele utilizate in proiect
•Code Explorer - face vizibil editorul de cod
•Component List - afiseazaolista cu toate componentele Delphi-ului
•Window List - face vizibilaolista cu toate ferestrele Delphi-ului care
sunt deschise
•Debug Windows - afiseaza un meniu din care pot fi alese ce ferestre
pentru depanarea
programului vor
fi afisate
(puncte de
intrerupere, apeluri
ale subprogramelor, variabile, fire de executie,
module, CPU, FPU )
•Desktops - permite afisarea, salvarea
sau stergerea diverselor moduri de
asezare a ferestrelor
•Toggle Form/Unit - comuta intre fereastra si unit-ul corespunzatoe
•Units - afiseazaolista cu toate unit-urile proiectului •Forms -
afiseazaolista cu toate ferestrele(form) existente in proiect
•Type Library - afiseaza editorul
pentru librarii de tipuri (Type
Library), util pentru a crea tipuri de informatii
pentru controale ActiveX, obiecte MTS si alte obiecte COM
•New Edit Window - deschide inca un editor de cod
•Toolbars - deschide un meniu din care pot fi selectate ce bare de
butoane vor fi afisate
Meniul Project
Este utilizat pentru a compilaoaplicatie.
Pentru ca optiunile din meniu sa
poata fi folosite e necesar sa fie deschis un proiect.
In meniu avem urmatoarele comenzi:
•Add to Project - adauga un fisier proiectului
•Remove from Project - elimina un fisier din proiect
•Import Type Library - afiseazaolista
cu librariile de tipuri inregistrate
in sistem
•Add to Repository - adauga
proiectul la lista de obiecte ce
pot fi create, din meniul File optiunea
New.pentru a fi adaugate la proiect.
•View Source - afiseaza sursele proiectului in editorul de cod
•Languages - permite adaugarea, eliminarea sau reinnoirea DLL-urilor
pentru limba •Add New Project - adauga la proiectonoua aplicatie, un
nou DLL ... •Add New Project - adauga la proiect un altul existent
•Compile project - compileaza doar
acele fisiere care au fost
modificate de la ultima
•Build project - compileaza toate modulele proiectului
•Syntax Check project - verifica sintactic toate modulele
proiectului compilare
•Information for project - afiseaza
informatii despre proiectul compilat (nr.
de linii, dimensiunea programului rezultat ...)
•Compile All Projects - compileaza
toate fisierele care au fost
modificate de la ultima compilare in toate proiectele
din grupul de proiecte
•Build All Projects -
compileaza toate fisierele
in toate proiectele din
grupul de proiecte
•Web Deployment Option - se
utilizeaza pentru a configura controalele
ActiveX sau ActiveForm in vederea adaugarii lor la serverul web.
•Web deploy - adauga controalele ActiveX sau ActiveForm, dupa
configurarea acestora •Options - afiseazaofereastra de dialog in care
se modifica optiunile pentru compilare,
linkeditare etc.
Meniul Run
Meniul permite depanarea programelor. In acest meniu se afla
urmatoarele optiuni:
•Run - compileaza si executa aplicatia
•Attach to Process - afiseazaolista cu procesele care pot fi depanate
•Parameters - de aici se pot
specifica: parametrii cu care va fi
lansata in executie aplicatia,
executabilul corespunzator unu
DLL, un calculator
pentru depanarea la distanta
•Register ActiveX Server - adaugaointrare
in registrii Windows-ului pentru controlul
ActiveX , e valabila comanda atunci cand avem un proiect ActiveX.
•Unregister ActiveX Server - sterge intrarea in registrii
Windows-ului pentru controlul ActiveX , e valabila comanda atunci cand
avem un proiect ActiveX.
•Install MTS Object -
Instaleaza obiectele MTS
din proiect intr-um
pachet MTS, comanda valabila doar daca proiectul curent
este un obiect MTS(Microsoft transaction server)
•Step over - executa un program
linie cu linie, sarind peste
proceduri, tratandu-le ca fiindosingura instructiune
•Trace Into - executa un program linie cu linie, intrand in proceduri
•Trace to Next Source - executa un program, oprindu-se la urmatoarea
linie executabila din program
•Run To Cursor - Executa programul
curent pana la pozitia cursorului
din editorul de cod
•Run Until Return - executa procesul pana la iesirea din functia
curenta •Show Execution Point - pozitioneaza cursorul la linia care se
executa •Program Pause - opreste temporar executia programului ce
ruleaza
•Program Reset -
termina executia programului
ce ruleaza si
elibereaza memoria ocupata de catre acesta
•Inspect - deschideofereastra in care putem scrie numele variabilei ce
se inspecteaza
•Evaluate/Modify - afiseazaofereastra in
care putem evalua sau modifica valoarea
•Add Watch - afiseazaofereastra in care putem scrie mai multe variabile
a caror valori dorim sa le urmarimunei expresii.
•Add Breakpoint - afiseaza
un meniu din care putem
adauga, modifica puncte de intrerupere
Meniul Component
Din acest meniu se pot gestiona componentele instalate. Optiunile
acestui meniu sunt:
•New Component - deschideofereastra cu ajutorul careia se pot crea noi
componente •Install Component - instaleazaonoua componenta existenta
•Import ActiveX Control - adaugaolibrarie de tipuri de controale
ActiveX •Create Component Template - salveaza componente modificate ca
sabloane cu un nou
•Install Packages - instaleaza un pachet de componente
•Configure Palette - deschideofereastra din care se poate configura
paleta de nume,onoua icoana, peonoua pagina
componente, se pot sterge, ascunde, muta componente dintr-opagina in
alta
Meniul Database
Din acest meniu se pot crea, modifica, urmari si vizualiza bazele de
date. Meniul contine urmatoarele optiuni:
•Explore - lanseaza in
executie Database Explorer
sau SQL Explorer, cu
ajutorul carora se pot crea si manipula baze de date
•SQL Monitor - lanseaza
SQL Monitor cu ajutorul
caruia se pot urmari
alocarea resurselor si starea comenzilor date prin SQL Links
•Form Wizard - se utilizeaza pentru
crearea rapida a unor ferestre de
vizualizare a bazelor de date
Meniul Tools
Meniul tools se utilizeaza pentru:
-A vizualiza sau modifica configuratia mediului de programare -A
vizualiza sau modifica configuratia depanatorului -A modifica obiectele
ce pot fi create cu Delphi-ul -A modifica lista programelor ce apar in
acest meniu -A crea sau modifica tabele ale bazelor de date -A crea sau
modifica pachete de componente -A crea sau modifica imagini
In acest meniu putem avea:
•Enviroment Options -
specifica configuratia dorita,
caile catre librarii,
paleta de
•Editor Options - de aici se configureaza editorul de cod (culori,
taste rapide, indentari etc)componente
•Debugger Option - configurare program de depanare
•Repository - gestioneaza modul de organizare a obiectelor ce pot fi
create cu optiunea
•Translation Repository - afiseaza translation repository, cu care por
fi facute traduceri
•Configure Tools - cu ajutorul
aceste optiuni pot fi adaugate,
sterse sau modificate New din meniul File
optiuni ce apar in acest meniu Unelte optionale:
•Database Desktop -lanseaza un utilitar
cu ajutorul caruia putem crea, vizualiza,
sorta, modifica si interoga baze de date.
•Package Collection Editor - editor de pachete
•Image Editor - lanseaza un
utilitar cu ajutorul caruia putem
edita fisiere de resurse,
•Team Source - lanseaza un program
destinat gestionarii unor proiecte
dezvoltate de catre grupuri de programatori.icoane, bitmap-uri si
cursoare care sa fie folosite in aplicatii
Meniul Help
Se utilizeaza pentru a accesa help-ul sistemului. In acest meniu putem
gasi urmatoarele optiuni:
•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 destinata programatorilor •Delphi Direct -
legatura directa catre pagina Delphi-ului •Customize - permite
gestionarea help-ului
•About - informatii despre copyright si versiune
2.2 Bara de butoane
Pe bara de butoane se afla scurtaturi catre cele mai utilizate comenzi.
Open project Remove from project
New Open Reopen
Save Save all Add to
project Help
Units Forms
Toggle New form
Run Pause Trace
into Step over
2.3 Paleta de componente
Paleta de componente a Delphi-ului
este impartita in mai multe pagini,
in interiorul fiecarei pagini
existand un numar
variabil de componente.
Structura paginilor poate fi
schimbata, utilizatorul avand posibilitatea
sa creeze pagini noi, componente
noi, poate sa stearga componente sau poate sa le reordoneze.
Pentru a obtine informatii generale
despre pagina activa utilizatorul poate
apasa tasta F1. Dacaocomponenta este
selectata in momentul apasarii tastei
F1 atunci vor fi afisate informatii despre
componenta respectiva.
Componentele pot sa fie: •Vizibile - componenta este
vizibila, sau poate fi facuta vizibila in timpul rularii programului,
spre exemplu butoanele
•Invizibile - componenta apare sub forma unei imagini la scrierea
programului, dar in timpul rularii nu e vizibila, spre
exemplu timer-ul
Fiecare componenta are anumite atribute cu ajutorul carora controlam
aplicatia : •Proprietatile(properties) -
ne permit accesul la metodele sau
campurile unei clase.
•Metode(methods) - proceduri si functii asociate unui obiect
•Evenimentele(events) - sunt actiuni ale
utilizatorului, ex. apasarea unui buton,
sau ale sistemului de
operare recunoscute de
catre componenta. Fiecare componenta
areolista de evenimente pe care le
recunoaste si la care poate raspunde.
Exista posibilitatea de a asocia un
cod care sa se execute fiecarui eveniment.
In tabelul de mai jos sunt prezentate paginile paletei de componente,
precum sio descriere scurta a continutului fiecarei pagini.
Nume
Descriere
Standard
Controale standard: butoane, meniuri, etichete
Additional
Controale specializate: butoane ce pot contine imagini, liste derulante
Win32
Controale pentru Windows9x/NT: calendar, bare de stare,
System
Componente si controale destinate lucrului cu sistemul: timer, media
player
Data Access
Componente invizibile cu
ajutorul carora se
poate realiza conectarea la
diferite baze de date utilizand Borland Database Engine (BDE)
Data Controls
Componente vizuale destinate
accesului(vizualizare, stergere, modificare, adaugare date)
la bazele de date
ADO
Componente ce permit conectarea la
baze de date folosind ActiveX Data
Objects (ADO)
Interbase
Componente ce permit conectarea la un server Interbase fara BDE sau ADO
Midas
Componentele din aceasta pagina permit lucrul cu baze de date
distribuite
InternetExpress Componentele
din aceasta
pagina aplicatii InternetExpress
care sunt simultan aplicatii Web
Server si clienti pentru baze de date
distribuite permit
construirea de
Internet
Suport pentru crearea aplicatiilor pentru Internet
FastNet
Oferaovarietate de protocoale de acces la Internet
Decision Cube
Componente care vizualizeaza datele din
bazele de date ajutand la luarea
deciziilor
Quick Report
Componente ce ajuta la crearea unor rapoarte
Win3.1
Componente pentru compatibilitatea inapoi cu Delphi 1 (a nu se folosi)
Samples
Exemple de componente (sursele lor se gasesc: Delphi5sourcesamples)
ActiveX
Componente model de tip ActiveX
Servers
Componente destinate accesului la diferite servere
2.4 Inspectorul de obiecte (object inspector)
Inspectorul de obiecte este utilizat
pentru a modifica proprietatilesi a scrie
rutinele de tratare a evenimentelor. Acesta este
prevazut cu doua pagini: obiectelor
•Properties - care
permite stabilirea
•Events -
destinata gestionarii evenimentelor
legate de componente.proprietatilor obiectelor
Pagina Properties
Este prevazuta cu doua coloane:
pe coloana stanga sunt listate denumirile proprietatilor
pe coloana dreapta avem valorile actuale ale acestora Atribuirea unei
valori se poate face in trei moduri:
prin linia de editare aferenta proprietatii(ex. Caption)
prin lista derulanta(ex. BorderStyle)
prin intermediul unei ferestre de dialog(ex. Font)
Anumite proprietati (ex.
Color) admit doua
modalitati de atribuire a unei valori, prin lista
derulanta, sau daca se da dublu clic, prin fereastra de dialog.
La unele proprietati (ex. BorderIcons,
Constrains) numele este precedat
de un semn
plus. In aceste
cazuri proprietatea respectiva desemneazaolista de
proprietati.
Pagina Events
Este prevazuta cu doua coloane:
pe coloana stanga sunt listate denumirile evenimentelor
pe coloana dreapta avem procedurile ce trateaza evenimentele Atribuirea
unei valori se poate face in doua moduri:
prin linia de editare,
se da dublu clic
pe coloana din dreapta,
corespunzatoare evenimentului pe care dorim
sa-l tratam, iar Delphi-ul deschide
editorul de cod si ne permite scrierea codului
ce se doreste a fi executat la aparitia evenimentului respectiv.
Antetul procedurii(metodei) de tratare a
evenimentului este scris automat de catre
editor. Daca procedura aferenta unui
eveniment nu contine niciolinie de
cod aceasta va fi stearsa.
prin lista derulanta,
din care se poate
alegeoprocedura care a
fost definita de programator
anterior, daca de doreste sa se
execute aceeasi rutina pentru mai multe
evenimente.
3. Gestiunea componentelor
3.1 Asezarea componentelor peoforma(form)
Pentru a asezaocomponenta se poate proceda astfel: -
Se efectueaza un clic de mouse pe simbolul grafic al componentei
- Se efectueaza un clic
in pozitia in care se
doreste plasarea coltului stanga
sus a componentei.
O alta posibilitate de a asezaocomponenta, dar de aceasta data in
centrul ferestrei este de a da dublu clic pe aceasta.
Daca se doreste adaugarea mai multor componente identice atunci se
procedeaza astfel: - Se apasa tasta SHIFT
- Se efectueaza clic pe
simbolul grafic al componentei dorite,
dupa ace se poate elibera tasta SHIFT
- Se pozitioneaza obiectul in pozitiile dorite
- Pentru revenirea la normal se va efectua un clic pe
simbolul sagetii, aflat in partea din stanga a paginii cu componente.
Delphi-ul contine si
anumite componente
destinate gruparii mai
multor componente: GroupBox, RadioGroup
si Panel. Aceste componente container
permit gestionare mai usoara a
componentelor continute: se
pot muta simultan, pot
fi modificate anumite proprietati
simultan(font, culoare)
3.2 Manipularea componentelor asezate
Operatiile se pot executa asupra unei componente doar daca aceasta este
selectata. Putem selectaocomponenta in mai multe moduri:
Se efectueaza clic in interiorul componentei
Se alege obiectul din lista derulanta a inspectorului de obiecte
Daca focarul este pe fereastra se poate trece de laocomponenta la alta
cu tasta TAB In anumite cazuri este necesara realizarea unei operatii
asupra mai multor componente.
Pentru aceasta este necesara selectarea
obiectelor asupra carora se va efectua
operatia. Putem selecta un grup de obiecte in doua moduri:
- Cu tasta SHIFT apasata executam clic pe fiecare din
componentele dorite
- Realizam un dreptunghi
imaginar prin apasarea butonului stang
al mouse-ului si miscarea
acestuia astfel incat
sa cuprindem in interiorul dreptunghiului
componentele dorite.
Daca de doreste selectarea tuturor
obiectelor se poate alege optiunea
Select All din meniul Edit.
•Cut - muta obiectele selectate in clipboard
•Copy - copiaza obiectele selectate in clipboard •Paste - copiaza din
clipboardAsupra obiectelor selectate se pot aplica comenzile(ce se
gasesc in meniul Edit):
•Delete - sterge obiectele selectate
•Align to Grid - aliniaza toate componentele la cele mai apropiate
puncte de retea •Bring to Front - deplaseaza componentele selectate in
fata celorlalte componente •Send to back - deplaseaza componentele
selectate in spatele celorlalte componente •Align - afiseazaofereastra
de dialog cu ajutorul careia un grup de
componente pot fi
•Size - afiseazaofereastra
de dialog cu ajutorul
careia se pot redimensiona
componentele selectate(la dimensiunea celei mai mari, celei mai mici
componente ...)aliniate (dupa cea mai din stanga, cea mai din dreapta,
cea mai de sus ...)
•Scale - se pot scala (mari sau micsora)procentual componentele
selectate
•Tab Order - afiseazaofereastra de
dialog cu ajutorul careia putem
schimba ordinea de parcurgere a
componentelor, acesta se parcurg in
ordine cu Tab sau cu Shift+Tab in ordine
inversa
•Creation Order - afiseazaofereastra de
dialog din care putem schimba
ordinea de creare a obiectelor
•Lock - blocheaza/deblocheazaocomponenta
Comenzile Align to
Grid, Bring to Front,
Send to Back, Align,
Size, Scale, Tab
Order, Creation Order mai pot fi
gasite si in meniul care apare
daca executam clic dreapta pe un obiect.
Daca se doreste se poate face
vizibilaopaleta de comenzi destinate
alinierii obiectelor( meniul View optiunea Alingment Palette).
4 Programarea in Delphi
4.1 Lectia 1 - Programarea orientata pe obiect (OOP)
Notiunea de obiect. Caracteristici.
Ideea OOP este de a pune la un loc, intr-un singur container, atat
datele cat si partea de cod(proceduri si functii, care poarta denumirea
de metode) . Containerul se numeste obiect.
Obiectul releva utilizatorului (programatorului
care utilizeaza obiectul) doar ceea ce
este necesar, astfel incat utilizarea obiectului sa fie cat mai usoara.
Toate mecanismele interne pe care utilizatorul
nu are nevoie sa le cunoasca
sunt ascunse. OOP permiteoabordare modulara a
programarii, ceea ce ne fereste de necesitatea rescrierii unor parti de
cod.
O alta caracteristica importanta a obiectelor este mostenirea. Prin
mostenire se intelege acea proprietate a obiectelor prin care un obiect
nou construit preia datele si metodele unui alt obiect,
parinte. Aceasta caracteristica ne
permite scrierea rapida si usoara a
unor obiecte asemanatoare, care au unele date si metode comune.
Se poate intampla ca anumite metode
a unei clase sa fie rescrise,
astfel incat, chiar dacaoclasa descendenta
are metode cu acelasi nume, sa
faca cu totul altceva. Aceasta
caracteristica poarta denumirea de polimorfism.
Notiunea de clasa. Caracteristici.
O clasa sau un
tip de clasa
definescostructura ce contine
campuri, metode si
proprietati. Instanta unui tip de clasa poarta denumirea de obiect1.
Un camp este de faptovariabila care face parte dintr-un obiect. La fel
ca si campurile
unui record, campul unei clase reprezintaodata care exista in fiecare
instanta a unei clase. O metoda esteoprocedura
sauofunctie asociata cuoclasa. Majoritatea
metodelor
opereaza asupra obiectelor, care sunt instante ale claselor.
O proprietate esteointerfata pentru data
asociata unui obiect(data care de
obicei este
stocata intr-un camp). Proprietatile au
specificatori de acces care determina
modul in care datele pot fi citite
sau modificate. Din program, din
afara obiectului,oproprietate apare cel mai adesea la
fel ca un camp.
Pentru obiecte se aloca dinamic blocuri de memorie a caror
structura este determinata
de tipul de clasa. Fiecare obiect
areocopie unica a fiecarui camp
definit in clasa, dar toate instantele unei
clase impart aceleasi metode. Obiectele sunt create si distruse cu
ajutorul unor metode speciale numite constructori si destructori.
Constructorul esteometoda utilizata pentru
crearea unei instante a unei clase.
Are rolul de a initializa unele
campuri, de a aloca memorie, sau
a face tot ceea ce este necesar
initializarii obiectului. Nu este
obligatoriu sa definim un constructor,
daca acesta nu a fost definit se utilizeaza
constructorul implicit Create.
Destructorul esteometoda speciala care este apelata automat la
distrugerea obiectului.
De obicei destructorul
este vazut ca fiind
inversul constructorului, el
ocupandu-se de dezalocarea memoriei alocate clasei. Nu este
obligatoriu ca fiecare clasa sa aiba un destructor.
Vizibilitatea membrilor unei clase.
Fiecare membru a unei clase are
un atribut denumit vizibilitate, care
este indicata de
unul dintre cuvintele rezervate: private, protected, public, published.
Vizibilitatea determina modul in care membrii pot fi accesati:
In Pascal standard notiunea de clasa nu exista, ea fiind inlocuita cu
cea de obiect, de aici pot aparea anumite confuzii. Definitia de mai
sus e valabila pentru Delphi, nu si pentru Pascal.1
•Private - un membru private este
invizibil in afara clasei in care
este declarat, altfel spusometoda declarata ca fiind
private nu poate fi apelata din alt modul, iar un camp sau proprietate
nu pot fi citite sau scrise din alt modul
•Protected - un membru protected este vizibil
doar in clasa in care a fost declarat
si in toate clasele descendente.
•Public - un membru public este vizibil in exteriorul clasei.
•Published - acest mod de acces
este utilizat atunci cand se scriu
componente. Toti
membrii declarati in aceasta zona vor fi vizibili in Object Inspector.
In scrierea programelor Delphi este utilizata foarte mult OOP deoarece
se utilizeaza in
special componente.
Aceste componente suntsunt
componente!) care fie sunt create de utilizator, fie sunt
venite impreuna cu Delphi-ul, si pot fi reutilizate in orice alt
program. obiecte (dar
nu toate obiectele
Prezint mai josocomponenta TAnimate2 derivata din Tanimate :
type
TAnimate2 = class(TAnimate) private
{ Private declarations, tot ceea ce e declarat mai jos nu e vizibil in
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 citeste din variabila fhintimage,
iar pentru aoscrie se foloseste procedura SetHintImage}
property HintImage:Tbitmap read fhintimage write SetHintImage;
{proprietatea de mai jos are definita siovaloare implicita(clwhite -
culoarea alba)} 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;
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;
In exemplul de mai sus ati observat ca a aparut override, care ne
indica ca acea metoda poate
fi rescrisa, astfel incat intr-oclasa derivata metoda
respectiva va putea executa un cu totul alt
cod. Daca se doreste ca
utilizatorul sa fie obligat sa
rescrie metoda atunci se poate adauga
virtual in dreptul metodei.
Intrebari si probleme
1. Ce este un obiect?
2. Cum pot ascundeometoda, dar clasele derivate saopoata apela?
3. Ce esteoclasa?
4. Care este diferenta dintre clasa si obiect?
5. Din ce cauza avem metode si campuri private?
6. Cand este apelat destructorul unei clase?
4.2 Lectia 2 - Form(TForm)
Pentru descrierea formelor pot fi
utilizate 50 de proprietati, care
pot fi stabilite in perioada de
elaborare a proiectului prin intermediul
inspectorului de obiecte. Formele pot sa
"reactioneze" la 34 de evenimente.
Scopul acestui capitol este prezentarea
celor mai importante proprietati, metode
si evenimente referitoare la forme.
Se mentioneaza faptul, ca
majoritatea proprietatilor
si evenimentelor
formelor sunt
identice cu
proprietatile si evenimentele referitoare la
majoritatea componentelor. Astfel, de exemplu, atributul Width al unei
forme descrie latimea formei, iar in context cuocomponenta acest
atribut se va referi la latimea componentei. Evenimentul OnClick in
contextul formelor se refera la efectuarea unui clic pe forma, iar
in context cu componentele evenimentul se refera la
efectuarea unui clic pe componenta.
Proprietatile formelor
Proprietatea Action
Este utilizata
pentru centralizarea
raspunsurilor la
comenzile date de
utilizator. Majoritatii componentelor li se
poate asociaoactiune, actiunile fiind
centralizate si gestionate folosind componenta ActionList din
pagina standard.
Proprietatea ActiveControl
Este utilizata atunci, cand pe
forma au fost asezate mai multe
componente si se doreste specificarea
componentei care sa fie in focar,
in momentul initial. Prin efectuarea unui
clic pe butonul "sageata jos"
situat in coloana de valori se
poate deschideolista, care contine numele
tuturor componentelor formei, care pot
fi in focar. Din lista afisata, printr-un
clic, se poate selecta componenta necesara. La un moment dat
numaiosingura componenta poate sa fie in
focar. Proprietatea ActiveControl poate
fi utilizata si in executie. Daca
in aceasta proprietate se incarca
un alt nume de componenta, atunci
componenta respectiva va fi pusa in focar. Prin testarea valorii
atasata acestei proprietati se poate decide care anume componenta este
in focar la un moment dat. Daca forma nu este in
focar, componenta memorata in
ActiveControl desemneaza acea componenta, care va
ajunge in focar in momentul in care forma va reobtine focarul.
Proprietatea Align
Se utilizeaza pentru a alinia
componentele sus, la stanga, jos
sau la dreapta peoforma sau panel, acestea ramanand
pe pozitie chiar daca forma sau panelul se redimensioneaza.
Valoarea implicita este alNone, ceea
ce inseamna ca obiectul ramane
acolo unde a fost pozitionat.
Proprietatea Anchors
Se utilizeaza pentru a ne asigura
ca obiectul isi pastreaza pozitia
relativ la marginile
parintelui(a componentei careocontine), chiar daca componenta
parinte este redimensionata.
Cand parintele este redimensionat
obiectul isi pastreaza pozitia relativ
la marginile de care a fost ancorat.
Proprietatea AutoScroll (boolean)
Se refera la modul de utilizare
a barelor de defilare atasate
formei. In cazul in care se alege
valoarea True, care este si valoarea implicita, atunci in caz de
nevoie, in executie, forma va fi prevazuta cu bare de defilare. Aceste
bare vor apare atunci cand utilizatorul a
redimensionat forme pri care
componentele asezate pe forma devin
invizibile. Daca
se alege valoarea False, nu se
vor aseza in mod automat bare
de defilare la forma redimensionata.
In acest caz atasarea
barelor de defilare
poate fi realizata prin intermediul
proprietatilor HorzScrollBar.
Proprietatea AutoSize(boolean)
Se utilizeaza atunci cand se
doreste ca obiectul sa se
redimensioneze automat. Daca e pusa pe true atunci se
redimensioneaza automat daca continutul se schimba.
Proprietatea BidiMode
Permite ajustarea modului
de afisare si a
comportamentului automat atunci
cand aplicatia ruleaza intr-ozona in care se citeste de la dreapta la
stanga si nu de la stanga la dreapta.
Proprietate compusa BorderIcons
Se refera la existenta in linia
de titlu a formei meniului sistem
si a butoanelor de minimizare si
maximizare. Aceasta proprietate este de
tip multime, valorile posibile fiind urmatoarele:
Valoare
Semnificatie
biSistemMenu
Forma este prevazuta cu meniul sistem (control)
biMinimize
Forma este prevazuta cu un buton de minimizare
biMaximize
Forma este prevazuta cu un buton de maximizare
biHelp
Daca proprietatea BorderStyle
contine valoarea bsDialog
sau daca sunt excluse valorile
biMinimize si biMaximize, atunci in
bara de titlu va apare un semn
de intrebare. Daca se efectueaza un
clic pe acest semn, cursorul de mouse va
avea forma definita de comanda crHelp.
Valoarea implicita
a proprietatii
BorderIcons este
(biSystemMenu, biMinimize, biMaximize).
Proprietatea BorderStyle
Se refera la stilul
chenarului formei. Valorile
posibile ale acestei
proprietati sunt urmatoarele:
Valoare
Semnificatie
bsDialog
Chenar neredimensionabil; chenarul standard al ferestrelor de dialog.
bsSingle
Chenar neredimensionabil, desenat cuolinie simpla.
bsNone
Chenar neredimensionabil, desenat cu linie invizibila.
bsSizeable
Chenar redimensionabil standard.
bsToolWindow
Similar cu bsSingle, dar este prevazut cu un mic titlu.
bsSizeToolWin
Similar cu bsSizeable, dar este prevazut cu un mic tilu.
Proprietatea BorderWidth(de tip word)
Se utilizeaza pentru
controlul bordurii. Bordura este
zona din imediata
apropiere a marginilor in care niciocomponenta nu poate fi
plasata.
Proprietatea Capiton (de tip string)
Specifica un sir de caractere care este afisat in linia de titlu al
formei, de exemplu Form 1. In cazul componentelor aceasta proprietate
desemneaza eticheta atasata componentei. In acest
ultim caz litera precedata de
caracterul "&" este litera de
selectie a componentei (litera de
selectie este subliniata si componenta
poate fi selectata prin combinatia Alt - litera
subliniata).
Proprietatile ClientHeight si ClientWidth (de tip integer)
Se refera la inaltimea si latimea
zonei client a formei. Aceste
valori sunt specificate in puncte. Zona client este
aria utilizabila in interiorul chenarului formei.
Proprietatile Color (de tip Tcolor=longint)
Stabileste culoarea de fond a formei. Pentru initializarea valorii
acestei proprietati pot fi folosite constante
predefinite sau valori returnate de
functia RGB. Valoarea implicita este
clBtnFace. Daca
pentru proprietatea
ParentColor corespunzatoare
unei componente se
ia valoarea True,
si se modifica
valoarea proprietatii Color
corespunzatoare formei proprietar
al componentei, aunci se va
modifica automat si
culoarea componentei.
Proprietatea Constraints
Se utilizeaza pentru a stabili
dimensiunea minima si maxima pentruocomponenta.
Aceste dimensiuni nu pot fi depasite.
Proprietatea Ctl3D (de tip boolean)
Determina daca forma sau componenta
are aspect tridimensional (pentru True)
sau aspect bidimensional (pentru
False). Valoarea implicita
este True. Daca pentru
proprietatea Parenttl3D corespunzatoare unei
componente se ia valoarea True,
si se modifica valoarea
proprietatii Ctl3D
corespunzatoare formei
proprietar al
componentei, atunci se va modifica automat si aspectul componentei.
Proprietatea Cursor
Stabileste imaginea utilizata pentru reprezentarea
cursorului mouse-ului.
Pentru selectarea unei imagini se vor folosi diferitele constante
predefinite de descriere a cursorului. Valoarea implicita este
constanta crDefault.
Proprietatea DefaultMonitor
Stabileste pe care monitor va fi afisata forma, in cazul aplicatiilor
multimonitor.
Proprietatea DockSite
Stabileste daca forma poate fi tinta unei operatii drag-and-dock(trage
si stabileste)
Proprietatea DragKind
Se foloseste pentru a stabili daca
se iau obiecte de pe control(drag)
sau se pot pune pe el(dock).
Proprietatea Enabled (de tip boolean)
Se refera la accesibilitatea formei
sau componentei. Daca se alege
varianta True, care este si
valoarea implicita, atunci
forma sau componenta va
reactiona la diferitele evenimente
referioare la mouse, tastatura si
ceas. Daca se alege varianta False,
forma sau componenta va fi inhibata
si nu va raspunde la evenimentele
echipamentelor de intrare. Valoarea acestei
proprietati de regula este
modificata in executie, de exemplu pentru
a interzice utilizarea unor butoane
de comanda in contextul respectiv.
Eticheta unei componente inhibate este
afisata cu caractere estompate. O
componenta inhibata ulterior poate
fi reactivata, moment
in care eticheta
componentei va fi
afisata cu caractere negre.
Proprietatea compusa Font
Stabileste fontul utilizat
la textele care sunt
afisate pe obiectul
Canvas al formei precum si la
textele aferente componentelor asezate pe
forma. Fontul utilizat poate fi definit
in perioada de elaborare a
proiectului, insa poate fi modificat
in executie, prin redefinirea subproprietatilor
Color (culoare), Height (inaltime), Name
(nume), Pitch (latimea caracterelor), Size (dimensiune), sau
Style (stil).
Proprietatea FormStyle
Stabileste stilul formei. Valorile posibile ale acestei proprietati
sunt urmatoarele:
Valoare
Semnificatie
fsNormal
Forma creazaofereastra normala
(nici MDI copil, nici
MDI parinte). Valoare implicita.
fsMDIChild
Forma creazaofereastra MDI copil
fsMDIForm
Forma creazaofereastra MDI parinte
fsStayOnTop
Forma va fi afi at deasupra celorlalte forme
utilizate n proiect
Proprietatile Height si Width (de tip integer)
Sabilesc inaltimea, respectiv
latmea formei sau
componentei. Aceste valori sunt
exprimate in puncte care include si dimensiunile rezervate chenarelor.
Proprietatea HelpContext
Se foloseste pentru a stabili un
numar folosit in apelarea
ajutorului(Help) context-
senzitiv, pentru a determina care
fereastra de ajutor este afisata
daca utilizatorul apasa tasta F1. Daca
HelpContext are valoarea 0 atunci
va fi afisata fereastra de ajutor
corespunzatoare parintelui.
Proprietatea HelpFile
Specifica fisierul in care se afla ajutorul.
Proprietatea Hint (de tip string)
1
Specifica un text explicativ care
va fi afisat atunci cand
cursorul de mouse este asezat
deasupra unei forme sau
componente. Acest text
este afisat
numai aunci cand proprietatea ShowHint (de tip
boolean) este initializata cu valoarea True.
Proprietatile compuse HorzScrollBar si VertScrollBar
Stabilesc daca forma
este prevazuta sau nu
cu bare
de defilare orizontale si/sau
verticale. Subproprietatile barelor
de defilare sunt centralizate in tabelul urmator:
Proprietate Descriere
Increment
(o valoare cuprinsa intre 1 si
32767, valoarea Stabileste
distanta de deplasare a imaginii din forma in momentul in care
utilizatorul efectueaza un clic pe
unul din butoanele cu
sageti situate in extremitatile barelor de defilare.
implicita este 8)
Margin (de tipimplicita este 0)
word, valoarea
Stabileste
momentul de afisare al barei de
defilare. Aceasta proprietate
determina numarul minim de puncte
care separa componentele
formei si muchia formei. In executie,
dacaocomponenta ajunge
laodistanta mai mica decat Margin
puncte de la muchie, si daca
proprietatea Visible are valoarea True, atunci se afiseazaobara
de defilare.
Position
(de tip integer,
valoarea implicita este 0) Comunica
pozitia actuala a
cursorului glisant al
barei de
defilare. Aceasta valoare este
actualizata automat in
executie, in functie de defilare.
Range
(de tip integer,
valoarea implicita este 0) Dimensiunea
maxima de defilare,
exprimata in puncte. La
bara de
defilare verticala aceasta valoare
trebuie sa fie mai mare
decat valoarea proprietatii Height (in caz
contrar bara
verticala este invizibila). La bara
de defilare orizontala
aceasta valoare trebuie
sa fie
mai mare decat valoarea
proprietatii ClientWidth (in caz
contrar bara orizontala este invizibila).
De exemplu, daca
proprietatea Range a unei bare orizontale
contine valoarea 500,
latimea formei este 200, atunci valorile proprietatii Position pot fi
in intervalul (0, 300).
Tracking (de avand valoarea implicita
False) tip boolean,
Daca se alege valoarea True, imaginea din forma se deplaseaza
impreuna
cu butonul de glisare tras de
utilizator. Daca se alege
valoarea False, imaginea ramane
statica atata timp cat
utilizatorul trage butonul de
glisare, deci actualizarea imaginii
defilate va avea loc numai in momentul eliberarii butonului glisant al
barei de defilare.
Visible (deav nd valoarea implicita True)
tip boolean, Se
refera la vizibilitatea barei de defilare. Daca se alege valoarea True,
si
daca componenta se afla laodistanta
mai mica decat Margin
puncte de muchia formei, atunci bara de defilare devine vizibila.
Proprietatea Icon
Specifica simbolul grafic care va fi utilizat atunci cand forma este
minimizata.
Proprietatea KeyPreview (de tip boolean)
Se refera la modul
de gestiune a
evenimentelor
referitoare la utilizarea
tastaturii (OnKeyDown, OnKeyPress si
OnKeyUp). Daca pentru aceasta proprietate
se alege valoarea
True, atunci evenimentele referitoare la
tastatura sunt
gestionate de forma actuala, si nu
de componentele asezate pe
forma, chiar daca in momentul
respectiv in focar se
aflaocomponenta. De exemplu, sa presupunem ca
forma contine un
buton de comanda care este
in focar. Daca
utilizatorul
apasaotasta, evenimentele aferente
tastarii vor fi
gestionate de procedurile
formei si nu de
procedurile
butonului de comanda. Daca proprietatea
este initializata cu
valoarea False, care este si valoarea
implicita, atunci
evenimentele referitoare la tastare vor
fi gestionate de
procedurile componentei active, si nu de procedurile formei.
Proprietatile Left si Top (de tip integer) Stabilesc abscisa, respectiv
ordonata:
•Formei fata de coltul stanga sus al ecranului;
•Componentei fata de coltul stanga sau al formei proprietar;
•Componentei fata de coltul stanga sus al unei componente de tip
container. Valorile acestor proprietati sunt date in puncte.
Proprietatea Menu (de tip TmainMenu)
Stabileste componenta de meniu principal care este utilizat de forma la
un moment dat. In perioada de elaborare a proiectului aceasta
proprietate este initializata automat cu prima componenta MainMenu
asezata pe forma; in executie valoarea acestei proprietati
poate fi
modificata, printr-oinstructiune de
atribuire, astfel
caoforma poate sa foloseasca mai multe
componente MainMenu.
Proprietatea Name
Numele componentei. Orice componenta trebuie sa aiba un nume unic.
Proprietatea ObjectMenuItem
Se utilizeaza pentru a afla sau a precizaooptiune dintr-un meniu care
devine activa sau inactiva atunci cand un obiect OLE de pe formular
este selectat sau deselectat.
Proprietatea ParentBidiMode(boolean)
Stabileste daca controlul foloseste aceeasi valoare pentru BidiMode ca
si parintele.
Proprietatea ParentFont(boolean)
Stabileste daca controlul foloseste acelasi font ca si parintele
Proprietatea PixelPerInch
Se utilizeaza in timpul rularii programului pentru a modifica scara de
marire a formei la rezolutia curenta. Daca valoarea este modificata
fata de valoarea implicita, forma nu va avea aceleasi
proportii la
diferite rezolutii. Pentru a avea
efect trebuie ca proprietatea
Scaled sa fie true.
Proprietatea PopupMenu (de tip TpopupMenu)
Identifica componenta de meniu flotant
care este utilizata de
forma la un moment dat. Se
mentioneaza faptul
ca
aceasta propeietate
nu este
initializata automat cu
componenta PopupMenu asezata pe forma. In executie valoarea acestei
proprietatipoate fi modificata, printr-oinstructiune
de atribuire,
astfel caoforma poate sa foloseasca mai multe
componente PopupMenu.
Proprietatea Position
Se refera la dimensiunea formei si
al locul de plasare a acesteia
la executie, fata de
locul si dimensiunea care au fost utilizate in momentul realizarii
proiectului. Valorile posibile sunt:
Valoare
Semnificatie
poDesigned
Forma va avea
aceeasi pozitie
si dimensiuni ca
in momentul elaborarii proiectului.
poDefault
Pozitia si dimensiunea ferestrei vor fi stabilite de catre Windows
poDefaultPosOnly
Pozitia este stabilita de catre Windows, se pastreaza dimensiunile.
poDefaultSizeOnly
Pozitia este pastrata, Windows-ul alege dimensiunile.
poScreenCenter
Dimensiunile ferestrei se pastreaza,
plasandu-se in centrul ecranului. Se fac ajustari
pentru aplicatiile multimonitor.
po
Dimensiunile ferestrei se pastreaza,
plasandu-se in centrul
ecranului. Nu se fac ajustari pentru aplicatiile multimonitor.
PoMainFormCenter Dimensiunile ferestrei
se pastreaza,
plasandu-se in centrul ferestrei
principale a
aplicatiei.
Nu se fac
ajustari pentru aplicatiile
multimonitor.
PoOwnerFormCenter Dimensiunile ferestrei
se pastreaza,
plasandu-se in centrul ferestrei specificate de
proprietatea Owner.
Proprietatea PrintScale
Se utilizeaza pentru a afla sau
stabili proportiile ferestrei tiparite.
Valorile posibile
sunt: Valoare
Semnificatie
poNone
Nu se scaleaza deloc.
poProportional
Fereastra este scalata astfel incat
imaginea tiparita are aproximativ aceeasi dimensiune
ca si pe ecran.
poPrintToFit
Forma este tiparita
folosind aceleasi proportii
ca pe ecran, dar modificate astfel
incat sa incapa pe pagina.
Proprietatea Scaled
Specifica daca forma va fi redimensionata in functie de valoarea
PixelsPerInch
Proprietatea ShowHint
Daca are valoarea true atunci va
fi afisataoscurta informatie(Hint) despre
obiectul
deasupra caruia s-a oprit mouse-ul.
Proprietatea Tag
Utilizata pentru memorarea unei valori intregi. Nu are un rol
predestinat.
Proprietatea UseDockManager
Stabileste daca se utilizeaza un manager pentru operatia de
drag-and-dock.
Proprietatea Visible
Daca este true atunci componenta este vizibila.
Proprietatea WindowMenu
Se foloseste pentru a alfa sau
stabili ce meniu se utilizeaza
pentruofereastra parinte
in cazul aplicatiilor MDI(multiple document interface).
Proprietatea WindowState
Se refera la modul de afisare pe ecran a ferestrei. Poate avea
urmatoarele valori
Valori
Semnificatie
wsNormal
Fereastra este afisata normal.
wsMinimized
Fereastra este afisata miminizata
wsMaximized
Fereastra este afisata maximizata.
Metode
Metoda BringToFront Aduce forma in fata.
Metoda Close
Se utilizeaza pentru inchiderea formei.
Metoda Hide Ascunde forma.
Metoda Refresh, Repaint Redeseneaza forma.
Metoda ScaledBy(M, D:integer)
Scaleaza toate obiectele de pe
forma de M/D ori. Spre exemplu
daca M=15 si D=7
dimensiunile tuturor componentelor se vor
inmulti cu valoarea
15/7, dimensiunile fonturilor vor fi modificate de asemenea.
Metoda SendToBack
Trimite forma in spatele tuturor ferestrelor existente pe ecran.
Metoda SetFocus
Se utilizeaza pentru a selecta obiectul(controlul).
Metoda Show
Face vizibila forma.
Evenimente
Pentru fiecare dintre evenimentele prezentate mai jos Delphi-ul ne
permite sa scriemo
rutina care sa trateze evenimentul respectiv. Daca in
Object Inspector executam dublu clic pe
unul dintre evenimente Delphi-ul va
deschide editorul de cod
in care a scris deja antetul
procedurii care va
trata
evenimentul, noi urmand
sa scriem partea de
cod care
va trata evenimentul.
Procedura de
tratare a
evenimentului va
avea cel putin
un parametru
Sender:TObject care ne va indica
cine a generat evenimentul,
parametru care in general nu e folosit.
Daca mai sunt necesari
anumiti parametri pentru a trata evenimentul atunci acestia vor fi
inclusi, spre exemplu pentru evenimentul OnKeyPress, care apare la
apasarea unei taste, va fi transmis ca parametru si tasta(caracterul)
care a care a fost apasata.
Evenimentul OnActivate
Apare atunci cand forma devine activa.
Evenimentul OnCanResize
Apare atunci cand se redimensioneaza
controlul. Avem posibilitatea sa stabilim
noile
dimensiuni (NewWidth, NewHeight
:Integer) si sa
stabilim
daca suntem de acord cu
redimensionarea (Resize:Boolean)
Evenimentul OnClick
Apare atunci cand utilizatorul executa clic pe forma.
Evenimentul OnClose
Apare la inchiderea formei. Modificand
parametrul Action avem posibilitatea de a
decide ce se va executa. Parametrul Action poate avea valorile:
Valoare Descriere
caNone Forma nu are voie sa se inchida, deci nu se
intampla nimic.
caHide Forma va fi ascunsa. Aplicatiaomai poate
accesa.
caFree Forma este inchisa, iar memoria alocata ei va
fi eliberata
caMinimize Forma va fi minimizata.
Evenimentul OnCloseQuery Apare cand
metoda Close a
fost apelata.
Prin modificarea parametrului
CanClose:Boolean decidem daca forma se poate inchide sau nu.
Evenimentul OnConstrainedResize
Apare imediat
dupa evenimentul
OnCanResize. Se
utilizeaza pentru aplicarea
limitarilor dimensiunilor, parametrii MinWidth,
MinHeight,
MaxWidth, MaxHeight stabilind lungimea minima,
inaltimea minima,
lungimea maxima, inaltimea maxima. La
iesirea din procedura de
tratare a evenimentului vor fi
aplicate constrangerile si se
vor obtine noile dimensiuni, dupa care va apare evenimentul
OnResize
care va permite ajustarile finale.
Evenimentul OnContextPopup
Apare la clic dreapta. Parametrul
MousePos:Tpoint ne va indica pozitia
mouse-ului ,
iar valoare pe careovom atribui
parametrului Handle:Boolean va decide
daca va fi afisat
meniul(daca Handle=false, si proprietatea
AutoPopup=true) sau daca nu se va
executa nimic (Handle=true).
Evenimentul OnCreate Apare la crearea formei.
Evenimentul OnDblClick
Apare atunci cand utilizatorul executa dubclu clic pe forma.
Evenimentul OnDeactivate
Apare cand forma pierde focusul.
Evenimentul OnDestroy
Apare cand forma este distrusa.
Evenimentul OnDockDrop
Apare cand un obiect
este depus pe forma
prin operatia de
drag-and-dock. Ca
parametri vom avea Source care ne
va indica de unde a fost
luat obiectul, si pozitia la care a
fost lasat X, Y.
Evenimentul OnDockOver
Apare cand un obiect este tras
peste forma pentruooperatie de
drag-and-dock. Ca
parametri vom avea Source care ne
va indica de unde a fost
luat obiectul, pozitia la care se afla X,
Y si Accept care daca
are valoarea true se accepta operatia, altfel nu.
Evenimentul OnDragDrop
Apare cand utilizatorul da drumul
obiectului adus prin operatia de
drag-and-drop. Ca
parametri vom avea Source care ne
va indica de unde a fost
luat obiectul, si pozitia la care a
fost lasat X, Y.
Evenimentul OnDragOver
Apare cand un obiect este tras
peste forma pentruooperatie de
drag-and-drop. Ca
parametri vom avea Source care ne
va indica de unde a fost
luat obiectul, pozitia la care se afla X,
Y si Accept care daca
are valoarea true se accepta operatia, altfel nu.
Evenimentul OnEndDock
Apare cand operatia de tragere s-a terminat. Se utilizeaza pentru a
trata situatia in care
operatia de drag-and-dock s-a terminat.
Evenimentul OnGetSiteInfo
Apare inainte de OnDockDrop daca proprietate DockSite este true.
Evenimentul OnHelp
Apare cand forma primesteocerere de ajutor (Help).
Evenimentul OnHide
Apare atunci cand forma este ascunsa(spre exemplu daca Visible ia
valoarea false)
Evenimentul OnKeyDown
Apare la apasarea unei taste, daca
componenta(in acest caz
forma) este selectata. Parametrul
Key ne da codul tastei
apasate, iar parametrul Shift, care
poate avea valorile
ssShift, ssAlt, ssCtrl, ne indica
care dintre tastele Shift,
Ctrl sau Alt a mai fost
apasata odata 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 daca utilizatorul apasaotasta care
genereaza un singur caracter. Parametrul
Key contine caracterul tastei apasate.
Daca a fost
apasataocombinatie de taste, spre ex. Shift+F1,
nu provoaca acest
eveniment.
Evenimentul OnKeyUp
Apare la eliberarea unei taste,
daca componenta(in acest caz forma)
este selectata.
Parametrul Key ne da codul tastei
apasate, iar parametrul
Shift ne indica care dintre tastele
Shift, Ctrl sau Alt a mai fost
apasata odata 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 apasarea unui buton al
mouse-ului. Parametrul Button poate avea
valorile
mbLeft, mbRight, mbMiddle si ne
indica care dintre butoanele
mouse-ului au fost apasate. Parametrul
Shift ne indica
care dintre butoanele
Ctrl, Shift sau Alt
au fost
apasate, iar parametrii X, Y ne indica pozitia mouse-ului.
Evenimentul OnMouseMove
Apare la miscarea mouse-ului peste un control(in acest caz forma).
Parametrul Shift ne
indica care dintre tastele Shift,
Alt, Ctrl au fost apasate, iar
parametrii X, Y ne indica pozitia
mouse-ului.
Evenimentul OnMouseUp
Apare la eliberarea unui buton al
mouse-ului. Parametrul Button poate avea
valorile
mbLeft, mbRight, mbMiddle si ne
indica care dintre butoanele
mouse-ului au fost apasate. Parametrul
Shift ne indica
care dintre butoanele
Ctrl, Shift sau Alt
au fost
apasate, iar parametrii X, Y ne indica pozitia mouse-ului.
Evenimentul OnMouseWheel
Apare cand rotita mouse-ului este
rotita, daca evenimentul nu este
tratat (parametrul
Handle are valoare
False) atunci apare
evenimentul
OnMouseWheelUp sau evenimentul
OnMouseWheelDown, in functie de
directia in care este invartita
rotita. Parametrul Shift ne
indica care dintre tastele Ctlr,
Alt sau Shift au fost
apasate, parametrul WheelDelta ne indica de
cate ori a fost
invartita rotita.
Evenimentul OnMouseWheelDown
Apare la invartirea rotitei in jos,
daca evenimentul OnMouseWheel nu a
fost tratat.
Procedura are aceesi parametri ca si cea ce trateaza evenimentul
OnMouseWheel
Evenimentul OnMouseWheelUp
Apare la invartirea rotitei in sus,
daca evenimentul OnMouseWheel nu a
fost tratat.
Procedura are aceesi parametri ca si cea ce trateaza evenimentul
OnMouseWheel
Evenimentul OnPaint
Apare atunci cand forma este redesenata.
Evenimentul OnResize
Apare la redimensionarea formei.
Evenimentul OnShortCut
Apare la apasarea unei taste inainte de evenimentul OnKeyDown. Se
utilizeaza pentru
a trata short-cut-urile inainte de a trata apasarile obisnuite de taste.
Evenimentul OnShow
Apare atunci cand forma este facuta vizibila.
Evenimentul OnStartDock
Apare atunci cand utilizatorul incepe
sa traga un obiect peste control,
iar proprietatea
DragKind are valoarea dkDock.
Evenimentul OnUnDock
Apare atunci cand utilizatorul incearca
sa ia un obiect ce se afla
pe forma. Parametrul
Client ne indica
obiectul ce va fi
luat, parametrul
NewTarget ne indica
unde va fi dus obiectul, iar
parametrul
Allow il folosim pentru a permite operatia (daca ii atribuim true), sau
aointerzice.
Probleme si intrebari
1. Cum putem face invizibile butoanele sistem?
2. Cum putem
realiza o forma
de dimensiune
100x100 care sa
nu poata fi
redimensionata?
3. Scrietioaplicatie care sa afiseze pozitia
mouse-ului ca titlu a formei.
4. Scrietioaplicatie care sa
se inchida daca se apasa butonul
stang al mouse-ului pe forma.
5. Scrietioaplicatie care
sa aibaoforma(fereastra) care
sa "fuga" de mouse-ul
utilizatorului ori de cate ori acesta
ajunge cu mouse-ul pe ea.
4.3 Lectia 3 - Butonul
Butonul este des utilizat pentru a
initia diverse actiuni la apasare.
In Delphi exista trei tipuri de butoane:
Imagine Tip buton Descriere
Button
butonul standard
BitBtn
denumirea vine de la Bitmap Button si permite asezarea unui
bitmap
(imagini) in interiorul butonului. Exista
posibilitatea de a
stabili cateoimagine pentru fiecare stare
a butonului: ridicat,
apasat, dezactivat.
SpeedButton
permite adaugarea unei
(a unor) imagini care
poate
(pot) acoperi intreg butonul. Butoanele de acest tip se pot grupa.
Deoareceomare parte din proprietatile, metodele si evenimentele
butoanelor sunt comune cu cele de la form voi trata doar ceea ce apare
nou.
4.3.1 Button(TButton)
Se utilizeaza pentru a pune un buton standard pe form.
Proprietatile butonului
Proprietatea Action
Este utilizata pentru
centralizarea raspunsurilor la
comenzile date de utilizator.
Majoritatii componentelor li se poate asociaoactiune, actiunile fiind
centralizate si gestionate folosind componenta ActionList din pagina
standard.
Proprietatea Anchors
Se utilizeaza pentru a ne asigura
ca obiectul isi pastreaza pozitia
relativ la marginile
parintelui(a componentei careocontine), chiar daca componenta parinte
este redimensionata.
Cand parintele este redimensionat
obiectul isi pastreaza pozitia relativ
la marginile de care a fost ancorat.
Proprietatea BidiMode
Permite ajustarea modului
de afisare si a
comportamentului automat atunci cand
aplicatia ruleaza intr-ozona in care
se citeste de la dreapta la
stanga si nu de la stanga la
dreapta.
Proprietatea Cancel(boolean)
Daca are valoarea true atunci la
apasarea butonului Escape va avea
loc evenimentul
OnClick
Proprietatea Capiton (de tip string)
Specifica un sir de caractere care
este afisat pe buton, de exemplu
Button1. In cazul
componentelor aceasta proprietate desemneaza
eticheta atasata componentei. In acest
ultim
caz litera precedata de caracterul
"&" este litera de
selectie a componentei (litera de
selectie este subliniata si
componenta poate fi selectata prin combinatia Alt - litera subliniata).
Proprietatea Constraints
Se utilizeaza pentru a stabili dimensiunea minima si maxima
pentruocomponenta.
Aceste dimensiuni nu pot fi depasite.
Proprietatea Cursor
Stabileste imaginea utilizata pentru reprezentarea
cursorului mouse-ului.
Pentru selectarea unei imagini se
vor folosi diferitele
constante predefinite de descriere a
cursorului. Valoarea implicita
este constanta crDefault.
Proprietatea Default
Daca are valoarea true
atunci la apasarea
tastei Enter va avea
loc evenimentul
OnClick.
Proprietatea DragCursor
Specifica ce imagine sa fie utilizata pentru buton atunci cand acesta
este tras (dragg)
Proprietatea DragKind
Se foloseste pentru a stabili daca
se iau obiecte de pe control(drag)
sau se pot pune pe
el(dock).
Proprietatea DragMode
Stabileste daca
utilizatorul poate
executa operatia
de drag(tragere).
Daca valoarea
proprietatii este dnManual utilizatorul nu poate executa operatia, iar
daca valoarea proprietatii este dmAutomatic atunci poate executa
operatia de drag.
Proprietatea Enabled (de tip boolean)
Se refera la accesibilitatea componentei.
Daca se alege varianta True, care
este si
valoarea implicita, atunci componenta va
reactiona la
diferitele evenimente referitoare la mouse,
tastatura si ceas.
Daca se alege varianta False,
componenta va fi inhibata si
nu va raspunde la evenimentele
echipamentelor de intrare.
Valoarea acestei proprietati de
regula este modificata in
executie, de exemplu
pentru a interzice
utilizarea unor butoane de
comanda in
contextul respectiv. Eticheta unei
componente inhibate este
afisata cu caractere estompate. O
componenta inhibata
ulterior poate fi
reactivata, moment in
care eticheta
componentei va fi afisata cu caractere negre.
Proprietatea compusa Font
Stabileste fontul utilizat
la textele care sunt
afisate pe obiectul
Canvas al formei
precum si la textele aferente
componentelor asezate pe forma.
Fontul utilizat poate fi definit in perioada de
elaborare a
proiectului, insa poate fi modificat in executie, prin redefinirea
subproprietatilor Color
(culoare), Height
(inaltime),
Name (nume),
Pitch (latimea
caracterelor), Size (dimensiune), sau Style (stil).
Proprietatile Height si Width (de tip integer)
Sabilesc inaltimea, respectiv
latmea formei sau
componentei. Aceste valori sunt
exprimate in puncte care include
si dimensiunile rezervate chenarelor.
Proprietatea HelpContext
Se foloseste pentru a stabili un
numar folosit in apelarea
ajutorului(Help) context-
senzitiv, pentru a determina care
fereastra de ajutor este
afisata daca utilizatorul apasa tasta F1.
Daca HelpContext are
valoarea 0 atunci va fi afisata
fereastra de ajutor
corespunzatoare parintelui.
Proprietatea ModalResult
Proprietatea se poate utiliza pentru
a inchideofereastra modala (care a
fost facuta
vizibila cu metoda ShowModal), returnand valoarea din ModalResult
in campul ModalResult
al ferestrei modale. Nu este
necesar sa scriem cod care sa
trateze apasarea butonului. Pentru clarificare vezi
Exemplul 1.
Proprietatea poate avea mai multe valori: Constanta
Valoare Ce face
mrNone 0 Nimic
MrOk idOK Utilizatorul a iesit
apasand butonul OK
mrCancel idCancel Utilizatorul a
iesit apasand butonul CANCEL
mrAbort idAbort Utilizatorul a
iesit apasand butonul ABORT
mrRetry idRetry Utilizatorul a
iesit apasand butonul RETRY
mrIgnore idIgnore Utilizatorul a
iesit apasand butonul IGNORE
MrYes idYes Utilizatorul a iesit
apasand butonul YES
MrNo idNo Utilizatorul a iesit
apasand butonul NO
Proprietatea ParentShowHint(boolean)
Se utilizeaza pentru a ne asigura ca fie toate componentele afiseaza
Hint-ul fie toate nu
il afiseaza. Daca ParentShowHint e true atunci obiectul foloseste
ShowHint-ul parintelui, altfel decizia de a afisa Hint-ul va fi luata
in functie de ShowHint-ul propriu.
Proprietatea TabOrder
Poate lua valori in intervalul
-1..32767 si stabileste la a cata
apasare a tastei Tab se
ajunge la obiectul(controlul)
respectiv. Primul obiect
adaugat are valoarea proprietatii
TabOrder 0, urmatorul 1, al
treilea 2 s.a.m.d.
Proprietatea TabStop(boolean)
Se foloseste pentru a permite sau interzice accesul la control prin
folosirea tastei Tab.
Metode
Metoda Click
Simuleaza apasarea butonului.
Evenimente
Evenimentul OnEnter
Apare atunci cand controlul(in cazul
nostru butonul) primeste focus-ul, spre
exemplu
cand se ajunge cu Tab pe el.
Evenimentul OnExit
Apare atunci cand controlul pierde
focus-ul, spre exemplu cand
un alt control de pe fereastra primeste
focus-ul. Pentru lamuriri
vezi exemplul 2.
Exemple
Exemplul 1
Urmatoarea aplicatie va folosi proprietatea ModalResult a butonului.
Creationoua aplicatie care are doua form-uri(ferestre): Form1 si Form2.
Pe Form1 puneti
un buton a
carui eveniment OnClick e tratat de procedura:
procedure TForm1.Button1Click(Sender: TObject); begin
if form2.ShowModal=mrok then
form1.Caption:='OK'
else form1.Caption:='No';
end;
Pe Form2 puneti
doua butoane,
unul avand
ModalResult=mrOk, iar
celalalt avand
ModalResult=mrNo.
Compilati, lansati in executie si
testati functionarea
programului apasand succesiv pe cele doua
butoane din fereastra a
doua(Form2).
Exemplul 2
Pentru a ilustra folosirea evenimentelor OnEnter si OnExit creationoua
aplicatie pe a
carei fereastra puneti doua butoane:
Button1 si Button2, iar
pentru Button2 scrieti codul urmator pentru tratarea
evenimentelor
OnEnter si OnExit:
procedure TForm1.Button2Enter(Sender: TObject); begin
button2.Caption:='Enter'; end;
procedure TForm1.Button2Exit(Sender: TObject); begin
button2.Caption:='Exit'; end;
Compilati programul, lansati-l in
executie dupa care treceti de la
un buton la altul folosind tasta Tab.
4.3.2 BitBtn(TBitBtn)
Are aceleasi proprietati, metode si evenimente ca si butonul clasic, in
plus adaugandu- se posibilitatea de a aveaoimagine(bitmap) pe buton.
Proprietati
Proprietatea Glyph
Care stabileste ce imagine va fi
afisata pe buton. Putem avea maxim
patru imagini in
fisierul bitmap, toate imaginile fiind de aceeasi dimensiune, asezate
pe aceeasi linie una langa cealalta. Pe buton va fi afisata una dintre
imagini in functie de starea butonului.
Pozitia imaginii
Starea butonului
Descriere
Prima
Sus
Aceasta imagine apare daca butonul
e in pozitia ridicat. Daca
nu exista alte imagini atunci aceasta
imagine este utilizata
si pentru celelalte stari.
A doua
Dezactivat
Apare daca butonul nu poate fi selectat (proprietatea enable = false)
A treia
Apasat
Apare cand s-a facut clic pe buton.
A patra
Jos
Apare daca butonul a ramas jos.
Proprietate Kind
Stabileste ce imagine se va afisa
pe buton, precum si valoarea
ModalResult. Poate
avea urmatoarele valori: Valoare Buton
Descriere
bkCustom Va fi afisata
imaginea din Glyph, valoarea ModalResult
trebuie stabilita manual
Se poate utiliza pentru anularea unei actiuni.
bkAbort
bkAll Este recomandat
a se utiliza pentru
selectia a mai multor optiuni.
bkCancel Valoarea proprietatii Cancel este setata
automat la valoarea true, ModalResult va avea valoarea mrCancel
La apasarea butonului
fereastra se va
inchide. Valoarea
bkClose
proprietatii Default este true.
La apasarea butonului va fi apelat Help-ul programului.
bkHelp
Este recomandat a
se utiliza daca
a aparut o
eroare iar
bkIgnore
utilizatorul doreste sa continue operatia
bkNo Valoarea proprietatii Cancel este setata automat
la valoarea true, ModalResult va avea valoarea mrNo
bkOk Valoarea proprietatii Default este pusa automat
pe valoarea true, ModalResult va avea valoarea mrOk
Este recomandat a
se utiliza daca
a aparut o
eroare iar
bkRetry
utilizatorul doreste sa reincerce operatia.
bkYes Valoarea proprietatii Default este pusa automat
pe valoarea true, ModalResult va avea valoarea mrOk
Proprietatea Layout
Stabileste pozitia imaginii pe buton. Poate avea urmatoarele valori:
Valoare
Descriere
blGlyphLeft
Pune imaginea in partea stanga a textului.
BlGlyphRight
Pune imaginea in partea dreapta a textului.
BlGlyphTop
Pune imaginea deasupra textului.
BlGlyphBottom
Pune imaginea sub text.
Proprietatea Margin
Stabileste distanta, in pixeli, intre imagine si marginea butonului.
Daca valoarea este - 1 (valoare implicita) atunci imaginea si textul
vor fi centrate
Proprietatea NumGlyphs
Indica numarul de imagini care se
afla in bitmap-ul memorat in Glyph.
Numarul de
imagini poate fi intre 1(valoare implicita) si 4.
Proprietatea Spacing
Stabileste numarul de pixeli dintre
imagine si text, implicit are
valoarea 4. Daca are
valoarea -1 atunci textul va fi centrat intre imagine si marginea
butonului.
Proprietatea Style
Determina modul in care
este afisata imaginea
pe buton. Poate avea
urmatoarele
valori: Valoare
Descriere
bsAutoDetect
Daca folosim Windows 3.1 bitmap-ul
va avea infatisarea din Windows 3.1, altfel va
avea noua infatisare.
bsWin31
Va folosi infatisarea standard din Windows 3.1
bsNew
Va folosi noua infatisare
4.3.3 SpeedButton(TSpeedButton)
Fata de butonul clasic TSpeedButton-ul
introduce proprietati
care sa-i permita lucrul in grupuri de butoane, spre
exemplu in bare
de butoane.
Proprietati
Proprietatea AllowAllUp
Determina daca toate butoanele ce
fac parte dintr-un grup pot sa
fie toate ridicate
simultan sau nu. Daca are valoare
true atunci butoanele ce
fac parte din acelasi grup pot fi
toate ridicate, altfel
unul dintre butoane va fi apasat,
iar la apasarea unui alt
buton butonul apasat se va ridica. Daca campul GroupIndex este 0
atunci AllowAllUp nu are nici un efect.
Proprietatea Down
Se foloseste pentru a afla daca
butonul este apasat sau nu.
Proprietatea este valabila
doar daca proprietatea GroupIndex este diferita de 0.
Proprietatea Flat
Daca are valoarea true butonul nu
va fi afisat 3D. Daca proprietatea
are valoarea true
putem folosi imagini(bitmap) care sa ilustreze starea butonului.
Proprietatea GroupIndex
Permite sa selectam din ce grup
face parte butonul. Daca are valoarea 0
atunci fiecare
buton actioneaza separat, iar daca
areovaloare mai mare ca 0
atunci desemneaza numarul grupului din care face
parte butonul.
Daca utilizatorul apasa un buton din grup
acesta ramane apasat pana
cand un alt buton din grup va fi apasat.
Proprietatea Transparent
Specifica daca fundalul butonului este transparent sau nu.
Intrebari si probleme
1. Cum procedam ca un buton sa nu poata fi selectat
decat cu mouse-ul?.
2. Sa se scrieoaplicatie care
afisandofereastra pe care se
afla un buton care "fuge" ori de cate ori
utilizatorul a ajuns cu
mouse-ul pe el, dar nu poate iesi in afara ferestrei.
3. Sa se scrieoaplicatie care
afiseazaofereastra pe care se
afla trei butoane din care unul
singur poate fi selectat la
un moment dat si care afiseaza
un mesaj, ca titlu al
ferestrei, in functie de ce buton este apasat.
4. Sa se scrieoaplicatie care are butoane ce au alta
culoare decat a ferestrei.
4.4 Lectia 4 -Edit
Se utilizeaza pentru a permite
programului sa preia un text
de la utilizator. Se poate utiliza si pentru a
afisa un text.
Proprietati
Proprietatea AutoFocus
Daca are valoarea true atunci
textul va fi selectat cand
controlul va primi focus-ul. Se
pune pe valoarea true daca e mai probabil ca utilizatorul sa
inlocuiasca textul existent decat sa adauge ceva la el.
Proprietatea AutoSize
Daca are valoarea true
atunci controlul isi va
modifica inaltimea daca inaltimea
textului se schimba, daca nu exista posibilitatea ca textul sa fie
trunchiat.
Proprietatea BorderStyle
Determina daca controlul va aveaobordura, si atunci are valoarea
bsSingle, sau nu, si
atunci are valoarea bsNone.
Proprietatea CharCase
Determina ce fel de litere se
pot folosi(mari, mici sau combinat).
Proprietatea poate
lua urmatoarele valori: Valoare
Descriere
ecLowerCase
Literele sunt transformate in litere mici
ecNormal
Se pot utiliza atat litere mari cat si litere mici
ecUpperCase
Literele sunt transformate in litere mari
Proprietatea HideSelection
Determina daca textul ramane selectat
atunci cand controlul pierde focusul.
Daca are
valoare false atunci la pierderea
focusului textul ramane
selectat. Se poate accesa textul
selectat prin intermediul
proprietatii SelText. Pozitia de inceput
a selectiei este
memorata in proprietatea SelStart, iar lungimea textului selectat
e
memorata in SelLength.
Proprietatile ImeMode si ImeName
Se utilizeaza pentru a stabili
anumite optiuni pentru editorul IME
ce se utilizeaza
pentru limbile asiatice.
Proprietatea MaxLength
Stabileste numarul maxim de caractere ce poate fi introdus. Daca are
valoarea 0 atunci
nu exista nici un fel de limitare.
Proprietatea OEMConvert
Daca are valoare true atunci
caracterelor vor fi "traduse" din
ANSI in OEM si invers
pentru a elimina caracterele ce nu pot fi folosite la denumirea unui
fisier.
Proprietatile ParentBiDiMode, ParentColor, ParentCtl3D, ParentFont,
ParentShowHint
Au valoarea true daca se doreste
ca proprietatea a carei nume apare
dupa Parent sa
aiba aceeasi valoare ca si a parintelui(cu a componentei pe care se
afla asezat)
Proprietatea PasswordChar
Specifica ce caracter se va afisa
daca se doreste citirea unei parole
care nu trebuie sa
apara pe ecran. Daca are valoarea #0 atunci caracterele se vor afisa
normal.
Proprietatea ReadOnly
Daca are valoarea true nu se va putea modifica continutul Edit-ului.
Proprietatea Text
Contine textul ce se afiseaza in Edit. Proprietatea poate fi utilizata
pentru a prelua ceea
ce a tastat utilizatorul.
Cele mai ok referate! www.referateok.ro |