manual delphi

34
Utilizare Delphi 5 autor Popa Daniel 1 1.Introducere Lucrarea este destinatã celor care doresc sã dezvolte aplicaþii Windows utilizând mediul de programare Delphi. Am ales Delphi-ul deoarece este uºor de învãþat, fiind foarte asemãnãtor cu limbajul Pascal care este predat în liceu. Un alt motiv pentru care am ales mediul Delphi este cãîn urma compilãrii programelor se obþin executabile mici ce ruleazã rapid ºi nu necesitã librãrii ca sã poatã rula(un program similar scris în Visual Basic necesitã cca. 5 Megabytes de librãrii). Pentru a putea înþelege º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ã cunoaºterea principiilor programãrii într-un astfel de limbaj pentru realizarea unor programe simple. Dacã se doreºte realizarea unor componente pentru Delphi sau modificarea unora dintre cele existente atunci este necesarã cunoaºterea principiilor programãrii î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 conþin toate facilitãþile variantei Enterprise. Resursele necesare instalãrii ºi rulãrii 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 rezoluþie de 800x600 · Mouse · CD-ROM

Upload: cosminavadan

Post on 16-Apr-2015

196 views

Category:

Documents


5 download

DESCRIPTION

Manual de uitlizare Delphi 5

TRANSCRIPT

Page 1: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

1

1.Introducere

Lucrarea este destinatã celor care doresc sã dezvolte aplicaþii Windows utilizândmediul de programare Delphi. Am ales Delphi-ul deoarece este uºor de învãþat, fiind foarteasemãnãtor cu limbajul Pascal care este predat în liceu. Un alt motiv pentru care am alesmediul Delphi este cã în urma compilãrii programelor se obþin executabile mici ce ruleazãrapid ºi nu necesitã librãrii ca sã poatã rula(un program similar scris în Visual Basic necesitãcca. 5 Megabytes de librãrii).

Pentru a putea înþelege ºi folosi acest manual este necesar ca utilizatorul sã cunoascãbine limbajul Pascal, deoarece Delphi-ul este practic limbajul Pascal orientat pe obiect. Cutoate cã Delphi-ul este un limbaj orientat pe obiect nu este necesarã cunoaºterea principiilorprogramãrii într-un astfel de limbaj pentru realizarea unor programe simple. Dacã se doreºterealizarea unor componente pentru Delphi sau modificarea unora dintre cele existente atuncieste necesarã cunoaºterea principiilor programãrii într-un limbaj orientat pe obiect.

Am ales pentru prezentare Delphi 5 Enterprise Edition deoarece este varianta cea maicompletã, celelalte variante :Professional Edition, Standard Edition fiind variante prescurtate,care nu conþin toate facilitãþile variantei Enterprise.

Resursele necesare instalãrii ºi rulãrii 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 rezoluþie de 800x600· Mouse· CD-ROM

Page 2: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

2

2. Prezentarea mediului DELPHI 5

La pornirea Delphi-ului acesta va arãta ca în figura de mai jos:

Din bara de meniuri pot fi accesate meniurile Delphi-ului, bara de butoane permiþândaccesul rapid la principalele comenzi.

Paleta de comenzi permite accesul rapid la cele peste 200 de componente ale mediuluiDelphi. Pentru o mai bunã gestionare a componentelor acestea sunt împãrþite pe mai multepagini, existând ºi posibilitatea adãugãrii unor pagini noi ºi a unor componente noi.

În partea stângã a imaginii poate fi observat inspectorul de obiecte (object inspector)cu ajutorul cãruia pot fi modificate proprietãþile obiectelor(Properties) ºi pot fi stabilite cerutine (proceduri) vor fi executate în momentul apariþiei unor evenimente(Events).

Bara demeniuri

Bare butoane Paleta de componente Pagini ale paletei decomponente

Inspectorulde obiecte

Fereastra proiectuluinou început

Page 3: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

3

2.1 Principalele meniuri ºi comenzi(bara de meniuri)

Meniul FileSe utilizeazã a deschide, salva, închide, tipãri proiecte sau fiºiere noi sau existente, pentruadãugarea unor noi ferestre(form) sau unitãþi de program(unit) proiectului deschisÎn meniu putem gãsi urmãtoarele opþiuni:

· New – deschide o fereastrã de dialog de unde putem alege ce obiect dorim sã creãm,sau putem selecta un vrãjitor (wizard) care sã ne ajute la crearea unui nou obiect.

· New Application – creeazã un nou proiect care conþine o fereastrã goalã, un unit ºi unfiºier 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 componentelorfolosite în cadrul proiectului) pentru proiectul curent

· Open – deschide o fereastrã de dialog pentru încãrcarea unui proiect, fereastrã, unitsau fiºier text.

· Open Project – deschide o fereastrã de dialog pentru încãrcarea unui proiect existent (fiºiere cu extensia BPR sau BPK)

· Reopen – deschide un meniu care conþine cele mai noi proiecte sau module utilizate· Save – salveazã fiºierul curent· Save As – salveazã fiºierul curent utilizând un nume nou· Save Project As – salveazã proiectul curent cu un nume nou· Save All – salveazã toate fiºierele deschise· Close – închide proiectul curent ºi toate fiºierele asociate· Close All – închide toate fiºierele deschise· Use Unit – adaugã unit-ul selectat la clauza uses a modulului activ· Print – tipãreºte fiºierul curent· Exit – închide proiectul ºi pãrãseºte mediul Delphi

Meniul EditSe utilizeazã pentru a manipula text sau componente în timpul creãrii programului.În meniu pot fi gãsite urmãtoarele opþiuni:

· Undo/Undelete – anuleazã ultima acþiune sau ºtergere· Redo – anuleazã ultima operaþie de undo· Cut – mutã obiectul selectat în Clipboard· Copy – copiazã obiectul selectat în Clipboard· Paste – copiazã conþinutul Clipboard-ului la poziþia 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ã proporþional toate componentele din fereastrã· Tab Order – modificã ordinea în care se sare apãsând tasta Tab· Creation Order – modificã ordinea în care sunt create componentele nevizuale

Page 4: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

4

· Flip Children – mutã obiecte „în oglindã” e util pentru cazul în care nu se citeºte de lastânga la dreapta ci invers

· Lock Controls Secures – „înþepeneºte” toate componentele în poziþiile curente· Add to interface – defineºte o nouã metodã, un nou eveniment, o nouã proprietate

pentru o componentã ActiveX

Meniul SearchMeniul se utilizeazã pentru a cãuta text, obiecte, erori, unit-uri, variabile ºi simboluri îneditorul de cod(fereastra în care se editeazã codul).În acest meniu putem gãsi opþiunile:

· Find – cautã un text specificat ºi marcheazã prima apariþie a acestuia în editorul de cod· Find in Files – cautã textul specificat ºi afiºeazã fiecare potrivire în fereastra aflatã sub

editorul de cod· Replace – cautã textul specificat ºi-l înlocuieºe cu un altul· Search Again – repetã ultima cãutare· Incremental Search – cautã textul pe mãsurã 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 ViewSe utilizeazã pentru a afiºa sau ascunde diverse elemente ale mediului Delphi.În meniu putem gãsi urmãtoarele opþiuni:

· Project Manager – afiºeazã managerul de proiect, acesta poate fi utilizat pentru anaviga prin fiºierele proiectului, pentru a le copia, ºterge, adãuga, salva.

· Translation Manager – afiºeazã managerul pentru traduceri· Object Inspector – afiºeazã inspectorul de obiecte· To-Do List – face vizibilã lista cu ceea ce trebuie fãcut în proiect· Alignment Palette – afiºeazã o fereastrã în care se gãsesc opþiuni destinate alinierii

obiectelor· Browser – afiºeazã o fereastrã în care pot fi vizualizate unit-urile ºi clasele utilizate în

proiect· Code Explorer – face vizibil editorul de cod· Component List – afiºeazã o listã cu toate componentele Delphi-ului· Window List – face vizibilã o listã cu toate ferestrele Delphi-ului care sunt deschise· Debug Windows – afiºeazã un meniu din care pot fi alese ce ferestre pentru depanarea

programului vor fi afiºate (puncte de întrerupere, apeluri ale subprogramelor,variabile, fire de execuþie, module, CPU, FPU )

· Desktops – permite afiºarea, salvarea sau ºtergerea diverselor moduri de aºezare aferestrelor

· Toggle Form/Unit – comutã între fereastrã ºi unit-ul corespunzãtoe· Units – afiºeazã o listã cu toate unit-urile proiectului· Forms – afiºeazã o listã cu toate ferestrele(form) existente în proiect· Type Library – afiºeazã editorul pentru librãrii de tipuri (Type Library), util pentru a

crea tipuri de informaþii 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 afiºate

Page 5: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

5

Meniul ProjectEste utilizat pentru a compila o aplicaþie. Pentru ca opþiunile din meniu sã poatã fi folosite enecesar sã fie deschis un proiect.În meniu avem urmãtoarele comenzi:

· Add to Project – adaugã un fiºier proiectului· Remove from Project – eliminã un fiºier din proiect· Import Type Library – afiºeazã o listã cu librãriile de tipuri înregistrate în sistem

pentru a fi adãugate la proiect.· Add to Repository – adaugã proiectul la lista de obiecte ce pot fi create, din meniul

File opþiunea New.· View Source – afiºeazã sursele proiectului în editorul de cod· Languages – permite adãugarea, eliminarea sau reînnoirea DLL-urilor pentru limbã· Add New Project – adaugã la proiect o nouã aplicaþie, un nou DLL…· Add New Project – adaugã la proiect un altul existent· Compile project – compileazã doar acele fiºiere 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 – afiºeazã informaþii despre proiectul compilat (nr. de linii,

dimensiunea programului rezultat…)· Compile All Projects – compileazã toate fiºierele care au fost modificate de la ultima

compilare în toate proiectele din grupul de proiecte· Build All Projects – compileazã toate fiºierele în toate proiectele din grupul de

proiecte· Web Deployment Option – se utilizeazã pentru a configura controalele ActiveX sau

ActiveForm în vederea adãugãrii lor la serverul web.· Web deploy – adaugã controalele ActiveX sau ActiveForm, dupã configurarea acestora· Options – afiºeazã o fereastrã de dialog în care se modificã opþiunile pentru compilare,

linkeditare etc.

Meniul RunMeniul permite depanarea programelor.În acest meniu se aflã urmãtoarele opþiuni:

· Run – compileazã ºi executã aplicaþia· Attach to Process – afiºeazã o listã cu procesele care pot fi depanate· Parameters – de aici se pot specifica: parametrii cu care va fi lansatã în execuþie

aplicaþia, executabilul corespunzãtor unu DLL, un calculator pentru depanarea ladistanþã

· Register ActiveX Server – adaugã o intrare în regiºtrii Windows-ului pentru controlulActiveX , e valabilã comanda atunci când avem un proiect ActiveX.

· Unregister ActiveX Server – ºterge intrarea în regiºtrii Windows-ului pentru controlulActiveX , e valabilã comanda atunci când 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 transactionserver)

· Step over – executã un program linie cu linie, sãrind peste proceduri, tratându-le cafiind o singurã instrucþiune

· Trace Into – executã un program linie cu linie, intrând în proceduri

Page 6: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

6

· Trace to Next Source – executã un program, oprindu-se la urmãtoarea linie executabilãdin program

· Run To Cursor – Executã programul curent pânã la poziþia cursorului din editorul decod

· Run Until Return – executã procesul pânã la ieºirea din funcþia curentã· Show Execution Point – poziþioneazã cursorul la linia care se executã· Program Pause – opreºte temporar execuþia programului ce ruleazã· Program Reset – terminã execuþia programului ce ruleazã ºi elibereazã memoria

ocupatã de cãtre acesta· Inspect – deschide o fereastrã în care putem scrie numele variabilei ce se inspecteazã· Evaluate/Modify – afiºeazã o fereastrã în care putem evalua sau modifica valoarea

unei expresii.· Add Watch – afiºeazã o fereastrã în care putem scrie mai multe variabile a cãror valori

dorim sã le urmãrim· Add Breakpoint – afiºeazã un meniu din care putem adãuga, modifica puncte deîntrerupere

Meniul ComponentDin acest meniu se pot gestiona componentele instalate.Opþiunile acestui meniu sunt:

· New Component – deschide o fereastrã cu ajutorul cãreia se pot crea noi componente· Install Component – instaleazã o nouã componentã existentã· Import ActiveX Control – adaugã o librãrie 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 DatabaseDin acest meniu se pot crea, modifica, urmãri ºi vizualiza bazele de date.Meniul conþine urmãtoarele opþiuni:

· Explore – lanseazã în execuþie Database Explorer sau SQL Explorer, cu ajutorulcãrora se pot crea ºi manipula baze de date

· SQL Monitor – lanseazã SQL Monitor cu ajutorul cãruia se pot urmãri alocarearesurselor ºi starea comenzilor date prin SQL Links

· Form Wizard – se utilizeazã pentru crearea rapidã a unor ferestre de vizualizare abazelor de date

Meniul ToolsMeniul tools se utilizeazã pentru:

- A vizualiza sau modifica configuraþia mediului de programare- A vizualiza sau modifica configuraþia 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

Page 7: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

7

În acest meniu putem avea:· Enviroment Options – specificã configuraþia doritã, cãile cãtre librãrii, paleta de

componente· Editor Options – de aici se configureazã editorul de cod (culori, taste rapide, indentãri

etc)· Debugger Option – configurare program de depanare· Repository – gestioneazã modul de organizare a obiectelor ce pot fi create cu opþiunea

New din meniul File· Translation Repository – afiºeazã translation repository, cu care por fi fãcute traduceri· Configure Tools – cu ajutorul aceste opþiuni pot fi adãugate, ºterse sau modificate

opþiuni ce apar în acest meniuUnelte opþionale:

· Database Desktop – lanseazã un utilitar cu ajutorul cãruia putem crea, vizualiza,sorta, modifica ºi interoga baze de date.

· Package Collection Editor – editor de pachete· Image Editor – lanseazã un utilitar cu ajutorul cãruia putem edita fiºiere de resurse,

icoane, bitmap-uri ºi cursoare care sã fie folosite în aplicaþii· Team Source – lanseazã un program destinat gestionãrii unor proiecte dezvoltate de

cãtre grupuri de programatori.

Meniul HelpSe utilizeazã pentru a accesa help-ul sistemului.În acest meniu putem gãsi urmãtoarele opþiuni:

· 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 – legãturã directã cãtre pagina Delphi-ului· Customize – permite gestionarea help-ului· About – informaþii despre copyright ºi versiune

2.2 Bara de butoanePe bara de butoane se aflã scurtãturi cãtre cele mai utilizate comenzi.

New Open Reopen Save Save all

Open project

Add to project

Remove from project

Help

Units Forms Toggle New form Run Pause Trace into Step over

Page 8: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

8

2.3 Paleta de componentePaleta de componente a Delphi-ului este împãrþitã în mai multe pagini, în interiorul

fiecãrei pagini existând un numãr variabil de componente. Structura paginilor poate fischimbatã, utilizatorul având posibilitatea sã creeze pagini noi, componente noi, poate sãºteargã componente sau poate sã le reordoneze.

Pentru a obþine informaþii generale despre pagina activã utilizatorul poate apãsa tastaF1. Dacã o componentã este selectatã în momentul apãsãrii tastei F1 atunci vor fi afiºateinformaþii despre componenta respectivã.

Componentele pot sã fie:· Vizibile - componenta este vizibilã, sau poate fi fãcutã vizibilã în timpul rulãrii

programului, spre exemplu butoanele· Invizibile – componenta apare sub forma unei imagini la scrierea programului,

dar în timpul rulãrii nu e vizibilã, spre exemplu timer-ulFiecare componentã are anumite atribute cu ajutorul cãrora controlam aplicaþia :

· Proprietãþile(properties) – ne permit accesul la metodele sau câmpurile uneiclase.

· Metode(methods) – proceduri ºi funcþii asociate unui obiect· Evenimentele(events) – sunt acþiuni ale utilizatorului, ex. apãsarea unui buton,

sau ale sistemului de operare recunoscute de cãtre componentã. Fiecarecomponentã are o listã de evenimente pe care le recunoaºte ºi la care poaterãspunde. Existã posibilitatea de a asocia un cod care sã se execute fiecãruieveniment.

În tabelul de mai jos sunt prezentate paginile paletei de componente, precum ºi odescriere scurtã a conþinutului fiecãrei pagini.Nume DescriereStandard Controale standard: butoane, meniuri, eticheteAdditional Controale specializate: butoane ce pot conþine imagini, liste derulanteWin32 Controale pentru Windows9x/NT: calendar, bare de stare,System Componente ºi controale destinate lucrului cu sistemul: timer, media playerData Access Componente invizibile cu ajutorul cãrora se poate realiza conectarea la

diferite baze de date utilizând Borland Database Engine (BDE)Data Controls Componente vizuale destinate accesului(vizualizare, ºtergere, modificare,

adãugare date) la bazele de dateADO Componente ce permit conectarea la baze de date folosind ActiveX Data

Objects (ADO)Interbase Componente ce permit conectarea la un server Interbase fãrã BDE sau ADOMidas Componentele din aceastã paginã permit lucrul cu baze de date distribuiteInternetExpress Componentele din aceastã paginã permit construirea de aplicaþii

InternetExpress care sunt simultan aplicaþii Web Server ºi clienþi pentrubaze de date distribuite

Internet Suport pentru crearea aplicaþiilor pentru InternetFastNet Oferã o varietate de protocoale de acces la InternetDecision Cube Componente care vizualizeazã datele din bazele de date ajutând la luarea

deciziilorQuick Report Componente ce ajutã la crearea unor rapoarteWin3.1 Componente pentru compatibilitatea înapoi cu Delphi 1 (a nu se folosi)Samples Exemple de componente (sursele lor se gãsesc: Delphi5\source\samples)ActiveX Componente model de tip ActiveXServers Componente destinate accesului la diferite servere

Page 9: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

9

2.4 Inspectorul de obiecte (object inspector)

Inspectorul de obiecte este utilizat pentru a modificaproprietãþile obiectelor ºi a scrie rutinele de tratare aevenimentelor. Acesta este prevãzut cu douã pagini:

· Properties – care permite stabilireaproprietãþilor obiectelor

· Events – destinatã gestionãrii evenimentelorlegate de componente.

Pagina PropertiesEste prevãzutã cu douã coloane:

- pe coloana stângã sunt listate denumirile proprietãþilor- pe coloana dreaptã avem valorile actuale ale acestora

Atribuirea unei valori se poate face în trei moduri:- prin linia de editare aferentã proprietãþii(ex. Caption)- prin listã derulantã(ex. BorderStyle)- prin intermediul unei ferestre de dialog(ex. Font)

Anumite proprietãþi (ex. Color) admit douã modalitãþi deatribuire a unei valori, prin listã derulantã, sau dacã se dã dubluclic, prin fereastrã de dialog.La unele proprietãþi (ex. BorderIcons, Constrains) numele esteprecedat de un semn plus. În aceste cazuri proprietatearespectivã desemneazã o listã de proprietãþi.Pagina EventsEste prevãzutã cu douã coloane:

- pe coloana stângã 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, corespunzãtoare

evenimentului pe care dorim sã-l tratãm, iar Delphi-ul deschide editorul de cod ºi nepermite scrierea codului ce se doreºte a fi executat la apariþia evenimentului respectiv.Antetul procedurii(metodei) de tratare a evenimentului este scris automat de cãtreeditor. Dacã procedura aferentã unui eveniment nu conþine nici o linie de cod aceastava fi ºtearsã.

- prin listã derulantã, din care se poate alege o procedurã care a fost definitã deprogramator anterior, dacã de doreºte sã se execute aceeaºi rutinã pentru mai multeevenimente.

Page 10: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

10

3. Gestiunea componentelor

3.1 Aºezarea componentelor pe o formã(form)Pentru a aºeza o componentã se poate proceda astfel:- Se efectueazã un clic de mouse pe simbolul grafic al componentei- Se efectueazã un clic în poziþia în care se doreºte plasarea colþului stânga sus a

componentei.O altã posibilitate de a aºeza o componentã, dar de aceastã datã în centrul ferestrei este de

a da dublu clic pe aceasta.Dacã se doreºte adãugarea mai multor componente identice atunci se procedeazã astfel:

- Se apasã tasta SHIFT- Se efectueazã clic pe simbolul grafic al componentei dorite, dupã ace se poate

elibera tasta SHIFT- Se poziþioneazã obiectul în poziþiile dorite- Pentru revenirea la normal se va efectua un clic pe simbolul sãgeþii, aflat în partea

din stânga a paginii cu componente.Delphi-ul conþine ºi anumite componente destinate grupãrii mai multor componente:GroupBox, RadioGroup ºi Panel. Aceste componente container permit gestionare mai uºoarãa componentelor conþinute: se pot muta simultan, pot fi modificate anumite proprietãþisimultan(font, culoare)

3.2 Manipularea componentelor aºezateOperaþiile se pot executa asupra unei componente doar dacã aceasta este selectatã.

Putem selecta o componentã în mai multe moduri:- Se efectueazã clic în interiorul componentei- Se alege obiectul din lista derulantã a inspectorului de obiecte- Dacã focarul este pe fereastrã se poate trece de la o componentã la alta cu tasta TABÎn anumite cazuri este necesarã realizarea unei operaþii asupra mai multor componente.

Pentru aceasta este necesarã selectarea obiectelor asupra cãrora se va efectua operaþia. Putemselecta un grup de obiecte în douã moduri:

- Cu tasta SHIFT apãsatã executãm clic pe fiecare din componentele dorite- Realizãm un dreptunghi imaginar prin apãsarea butonului stâng al mouse-ului ºi

miºcarea acestuia astfel încât sã cuprindem în interiorul dreptunghiuluicomponentele dorite.

Dacã de doreºte selectarea tuturor obiectelor se poate alege opþiunea Select All din meniulEdit.Asupra obiectelor selectate se pot aplica comenzile(ce se gãsesc în meniul Edit):

· Cut – mutã obiectele selectate în clipboard· Copy – copiazã obiectele selectate în clipboard· Paste – copiazã din clipboard· Delete – ºterge obiectele selectate· Align to Grid – aliniazã toate componentele la cele mai apropiate puncte de reþea· Bring to Front – deplaseazã componentele selectate în faþa celorlalte componente· Send to back – deplaseazã componentele selectate în spatele celorlalte componente· Align – afiºeazã o fereastrã de dialog cu ajutorul cãreia un grup de componente pot fi

aliniate (dupã cea mai din stânga, cea mai din dreapta, cea mai de sus…)· Size – afiºeazã o fereastrã de dialog cu ajutorul cãreia se pot redimensiona

componentele selectate(la dimensiunea celei mai mari, celei mai mici componente…)· Scale – se pot scala (mãri sau micºora)procentual componentele selectate

Page 11: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

11

· Tab Order – afiºeazã o fereastrã de dialog cu ajutorul cãreia putem schimba ordineade parcurgere a componentelor, acesta se parcurg în ordine cu Tab sau cu Shift+Tabîn ordine inversã

· Creation Order – afiºeazã o fereastrã de dialog din care putem schimba ordinea decreare 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 gãsite ºi în meniul care apare dacã executãm clic dreaptape un obiect.

Dacã se doreºte se poate face vizibilã o paletã de comenzi destinate alinierii obiectelor(meniul View opþiunea Alingment Palette).

Page 12: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

12

4 Programarea în Delphi

4.1 Lecþia 1 – Programarea orientatã pe obiect (OOP)

Noþiunea de obiect. Caracteristici.

Ideea OOP este de a pune la un loc, într-un singur container, atât datele cât ºi partea decod(proceduri ºi funcþii, care poartã denumirea de metode) . Containerul se numeºte obiect.

Obiectul relevã utilizatorului (programatorului care utilizeazã obiectul) doar ceea ceeste necesar, astfel încât utilizarea obiectului sã fie cât mai uºoarã. Toate mecanismele internepe care utilizatorul nu are nevoie sã le cunoascã sunt ascunse. OOP permite o abordaremodularã a programãrii, ceea ce ne fereºte de necesitatea rescrierii unor pãrþi de cod.

O altã caracteristicã importantã a obiectelor este moºtenirea. Prin moºtenire se înþelegeacea proprietate a obiectelor prin care un obiect nou construit preia datele ºi metodele unui altobiect, pãrinte. Aceastã caracteristicã ne permite scrierea rapidã ºi uºoarã a unor obiecteasemãnãtoare, care au unele date ºi metode comune.

Se poate întâmpla ca anumite metode a unei clase sã fie rescrise, astfel încât, chiardacã o clasã descendentã are metode cu acelaºi nume, sã facã cu totul altceva. Aceastãcaracteristicã poartã denumirea de polimorfism.

Noþiunea de clasã. Caracteristici.O clasã sau un tip de clasã definesc o structurã ce conþine câmpuri, metode ºi

proprietãþi. Instanþa unui tip de clasã poartã denumirea de obiect1.Un câmp este de fapt o variabilã care face parte dintr-un obiect. La fel ca ºi câmpurile

unui record, câmpul unei clase reprezintã o datã care existã în fiecare instanþã a unei clase.O metodã este o procedurã sau o funcþie asociatã cu o clasã. Majoritatea metodelor

opereazã asupra obiectelor, care sunt instanþe ale claselor.O proprietate este o interfaþã pentru data asociatã unui obiect(datã care de obicei este

stocatã într-un câmp). Proprietãþile au specificatori de acces care determinã modul în caredatele pot fi citite sau modificate. Din program, din afara obiectului, o proprietate apare celmai adesea la fel ca un câmp.

Pentru obiecte se alocã dinamic blocuri de memorie a cãror structurã este determinatãde tipul de clasã. Fiecare obiect are o copie unicã a fiecãrui câmp definit în clasã, dar toateinstanþele unei clase împart aceleaºi metode. Obiectele sunt create ºi distruse cu ajutorul unormetode speciale numite constructori ºi destructori.

Constructorul este o metodã utilizatã pentru crearea unei instanþe a unei clase. Arerolul de a iniþializa unele câmpuri, de a aloca memorie, sau a face tot ceea ce este necesariniþializãrii obiectului. Nu este obligatoriu sã definim un constructor, dacã acesta nu a fostdefinit se utilizeazã constructorul implicit Create.

Destructorul este o metodã specialã care este apelatã automat la distrugerea obiectului.De obicei destructorul este vãzut ca fiind inversul constructorului, el ocupându-se dedezalocarea memoriei alocate clasei. Nu este obligatoriu ca fiecare clasã sã aibã un destructor.

Vizibilitatea membrilor unei clase.Fiecare membru a unei clase are un atribut denumit vizibilitate, care este indicatã de

unul dintre cuvintele rezervate: private, protected, public, published.Vizibilitatea determinã modul în care membrii pot fi accesaþi:

1 În Pascal standard noþiunea de clasã nu existã, ea fiind înlocuitã cu cea de obiect, de aici pot apãrea anumiteconfuzii. Definiþia de mai sus e valabilã pentru Delphi, nu ºi pentru Pascal.

Page 13: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

13

· Private – un membru private este invizibil în afara clasei în care este declarat, altfelspus o metodã declaratã ca fiind private nu poate fi apelatã din alt modul, iar un câmpsau 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 întoate clasele descendente.

· Public – un membru public este vizibil în exteriorul clasei.· Published – acest mod de acces este utilizat atunci când se scriu componente. Toþi

membrii declaraþi în aceastã zonã vor fi vizibili în Object Inspector.

În scrierea programelor Delphi este utilizatã foarte mult OOP deoarece se utilizeazã înspecial componente. Aceste componente sunt obiecte (dar nu toate obiectele suntcomponente!) care fie sunt create de utilizator, fie sunt venite împreunã cu Delphi-ul, ºi pot fireutilizate în orice alt program.

Prezint mai jos o componentã TAnimate2 derivatã din Tanimate :

typeTAnimate2 = 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 citeºte din variabila fhintimage, iar pentru a o scrie

se foloseºte 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;

Page 14: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

14

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 aþi observat cã a apãrut override, care ne indicã cã acea metodã poatefi rescrisã, astfel încât într-o clasã derivatã metoda respectivã va putea executa un cu totul altcod. Dacã se doreºte ca utilizatorul sã fie obligat sã rescrie metoda atunci se poate adãugãvirtual în dreptul metodei.

Întrebãri ºi probleme

1. Ce este un obiect?

2. Cum pot ascunde o metodã, dar clasele derivate sã o poatã apela?

3. Ce este o clasã?4. Care este diferenþa dintre clasã ºi obiect?

5. Din ce cauzã avem metode ºi câmpuri private?

6. Când este apelat destructorul unei clase?

Page 15: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

15

4.2 Lecþia 2 – Form(TForm)

Pentru descrierea formelor pot fi utilizate 50 de proprietãþi, care pot fi stabilite înperioada de elaborare a proiectului prin intermediul inspectorului de obiecte. Formele pot sã“reacþioneze” la 34 de evenimente. Scopul acestui capitol este prezentarea celor maiimportante proprietãþi, metode ºi evenimente referitoare la forme. Se menþioneazã faptul, cãmajoritatea proprietãþilor ºi evenimentelor formelor sunt identice cu proprietãþile ºievenimentele referitoare la majoritatea componentelor. Astfel, de exemplu, atributul Width alunei forme descrie lãþimea formei, iar în context cu o componentã acest atribut se va referi lalãþimea componentei. Evenimentul OnClick în contextul formelor se referã la efectuarea unuiclic pe formã, iar în context cu componentele evenimentul se referã la efectuarea unui clic pecomponentã.Proprietãþile formelor

Proprietatea ActionEste utilizatã pentru centralizarea rãspunsurilor la comenzile date de utilizator.Majoritãþii componentelor li se poate asocia o acþiune, acþiunile fiind centralizate ºigestionate folosind componenta ActionList din pagina standard.

Proprietatea ActiveControlEste utilizatã atunci, când pe formã au fost aºezate mai multe componente ºi se doreºtespecificarea componentei care sã fie în focar, în momentul iniþial. Prin efectuarea unuiclic pe butonul “sãgeatã jos” situat în coloana de valori se poate deschide o listã, careconþine numele tuturor componentelor formei, care pot fi în focar. Din lista afiºatã,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 înexecuþie. Dacã în aceastã proprietate se încarcã un alt nume de componentã, atuncicomponenta respectivã va fi pusã în focar. Prin testarea valorii ataºatã acestei proprietãþise poate decide care anume componentã este în focar la un moment dat. Dacã forma nueste în focar, componenta memoratã în ActiveControl desemneazã acea componentã,care va ajunge în focar în momentul în care forma va reobþine focarul.

Proprietatea AlignSe utilizeazã pentru a alinia componentele sus, la stânga, jos sau la dreapta pe o formãsau panel, acestea rãmânând pe poziþie chiar dacã forma sau panelul se redimensioneazã.Valoarea implicitã este alNone, ceea ce înseamnã cã obiectul rãmâne acolo unde a fostpoziþionat.

Proprietatea AnchorsSe utilizeazã pentru a ne asigura cã obiectul îºi pãstreazã poziþia relativ la marginile

pãrintelui(a componentei care o conþine), chiar dacã componenta pãrinte este redimensionatã.Când pãrintele este redimensionat obiectul îºi pãstreazã poziþia relativ la marginile de care afost ancorat.

Proprietatea AutoScroll (boolean)Se referã la modul de utilizare a barelor de defilare ataºate formei. În cazul în care sealege valoarea True, care este ºi valoarea implicitã, atunci în caz de nevoie, în execuþie,forma va fi prevãzutã cu bare de defilare. Aceste bare vor apare atunci când utilizatorula redimensionat forme pri care componentele aºezate pe formã devin invizibile. Dacã

Page 16: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

16

se alege valoarea False, nu se vor aºeza în mod automat bare de defilare la formaredimensionatã. În acest caz ataºarea barelor de defilare poate fi realizatã prinintermediul proprietãþilor HorzScrollBar.

Proprietatea AutoSize(boolean)Se utilizeazã atunci când se doreºte ca obiectul sã se redimensioneze automat. Dacã epusã pe true atunci se redimensioneazã automat dacã conþinutul se schimbã.

Proprietatea BidiModePermite ajustarea modului de afiºare ºi a comportamentului automat atunci cândaplicaþia ruleazã într-o zonã în care se citeºte de la dreapta la stânga ºi nu de la stânga ladreapta.

Proprietate compusã BorderIconsSe referã la existenþa în linia de titlu a formei meniului sistem ºi a butoanelor deminimizare ºi maximizare. Aceastã proprietate este de tip mulþime, valorile posibilefiind urmãtoarele:

Valoare SemnificaþiebiSistemMenu Forma este prevãzutã cu meniul sistem (control)biMinimize Forma este prevãzutã cu un buton de minimizarebiMaximize Forma este prevãzutã cu un buton de maximizarebiHelp Dacã proprietatea BorderStyle conþine valoarea bsDialog sau dacã sunt

excluse valorile biMinimize ºi biMaximize, atunci în bara de titlu va apare unsemn de întrebare. Dacã se efectueazã un clic pe acest semn, cursorul demouse va avea forma definitã de comanda crHelp.

Valoarea implicitã a proprietãþii BorderIcons este (biSystemMenu, biMinimize,biMaximize).

Proprietatea BorderStyleSe referã la stilul chenarului formei. Valorile posibile ale acestei proprietãþi sunturmãtoarele:

Valoare SemnificaþiebsDialog 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 prevãzut cu un mic titlu.bsSizeToolWin Similar cu bsSizeable, dar este prevãzut cu un mic tilu.

Proprietatea BorderWidth(de tip word)Se utilizeazã pentru controlul bordurii. Bordura este zona din imediata apropiere amarginilor în care nici o componentã nu poate fi plasatã.

Proprietatea Capiton (de tip string)Specificã un ºir de caractere care este afiºat în linia de titlu al formei, de exemplu Form1. În cazul componentelor aceastã proprietate desemneazã eticheta ataºatã componentei.În acest ultim caz litera precedatã de caracterul “&” este litera de selecþie acomponentei (litera de selecþie este subliniatã ºi componenta poate fi selectatã princombinaþia Alt – litera subliniatã).

Page 17: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

17

Proprietãþile ClientHeight ºi ClientWidth (de tip integer)Se referã la înãlþimea ºi lãþimea zonei client a formei. Aceste valori sunt specificate înpuncte. Zona client este aria utilizabilã în interiorul chenarului formei.

Proprietãþile Color (de tip Tcolor=longint)Stabileºte culoarea de fond a formei. Pentru iniþializarea valorii acestei proprietãþi pot fifolosite constante predefinite sau valori returnate de funcþia RGB. Valoarea implicitãeste clBtnFace. Dacã pentru proprietatea ParentColor corespunzãtoare uneicomponente se ia valoarea True, ºi se modificã valoarea proprietãþii Colorcorespunzãtoare formei proprietar al componentei, aunci se va modifica automat ºiculoarea componentei.

Proprietatea ConstraintsSe utilizeazã pentru a stabili dimensiunea minimã ºi maximã pentru o componentã.Aceste dimensiuni nu pot fi depãºite.

Proprietatea Ctl3D (de tip boolean)Determinã dacã forma sau componenta are aspect tridimensional (pentru True) sauaspect bidimensional (pentru False). Valoarea implicitã este True. Dacã pentruproprietatea Parenttl3D corespunzãtoare unei componente se ia valoarea True, ºi semodificã valoarea proprietãþii Ctl3D corespunzãtoare formei proprietar alcomponentei, atunci se va modifica automat ºi aspectul componentei.

Proprietatea CursorStabileºte imaginea utilizatã pentru reprezentarea cursorului mouse-ului.Pentru selectarea unei imagini se vor folosi diferitele constante predefinite de descrierea cursorului. Valoarea implicitã este constanta crDefault.

Proprietatea DefaultMonitorStabileºte pe care monitor va fi afiºatã forma, în cazul aplicaþiilor multimonitor.

Proprietatea DockSiteStabileºte dacã forma poate fi þinta unei operaþii drag-and-dock(trage ºi stabileºte)

Proprietatea DragKindSe foloseºte pentru a stabili dacã se iau obiecte de pe control(drag) sau se pot pune peel(dock).

Proprietatea Enabled (de tip boolean)Se referã la accesibilitatea formei sau componentei. Dacã se alege varianta True, careeste ºi valoarea implicitã, atunci forma sau componenta va reacþiona la diferiteleevenimente referioare la mouse, tastaturã ºi ceas. Dacã se alege varianta False, formasau componenta va fi inhibatã ºi nu va rãspunde la evenimentele echipamentelor deintrare. Valoarea acestei proprietãþi de regulã este modificatã în execuþie, de exemplupentru a interzice utilizarea unor butoane de comandã în contextul respectiv. Etichetaunei componente inhibate este afiºatã cu caractere estompate. O componentã inhibatãulterior poate fi reactivatã, moment în care eticheta componentei va fi afiºatã cucaractere negre.

Page 18: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

18

Proprietatea compusã FontStabileºte fontul utilizat la textele care sunt afiºate pe obiectul Canvas al formeiprecum ºi la textele aferente componentelor aºezate pe formã. Fontul utilizat poate fidefinit în perioada de elaborare a proiectului, însã poate fi modificat în execuþie, prinredefinirea subproprietãþilor Color (culoare), Height (înãlþime), Name (nume), Pitch(lãþimea caracterelor), Size (dimensiune), sau Style (stil).

Proprietatea FormStyleStabileºte stilul formei. Valorile posibile ale acestei proprietãþi sunt urmãtoarele:Valoare SemnificaþiefsNormal Forma creazã o fereastrã normalã (nici MDI copil, nici MDI pãrinte).

Valoare implicitã.fsMDIChild Forma creazã o fereastrãMDI copilfsMDIForm Forma creazã o fereastrãMDI pãrintefsStayOnTop Forma va fi afiºatã deasupra celorlalte forme utilizate în proiect.

Proprietãþile Height ºi Width (de tip integer)Sabilesc înãlþimea, respectiv lãþmea formei sau componentei. Aceste valori suntexprimate în puncte care include ºi dimensiunile rezervate chenarelor.

Proprietatea HelpContextSe foloseºte pentru a stabili un numãr folosit în apelarea ajutorului(Help) context-

senzitiv, pentru a determina care fereastrã de ajutor este afiºatã dacã utilizatorul apasã tastaF1. Dacã HelpContext are valoarea 0 atunci va fi afiºatã fereastra de ajutor corespunzãtoarepãrintelui.

Proprietatea HelpFileSpecificã fiºierul în care se aflã ajutorul.

Proprietatea Hint (de tip string)Specificã un text explicativ care va fi afiºat atunci când cursorul de mouse este aºezatdeasupra unei forme sau componente. Acest text este afiºat numai aunci cândproprietatea ShowHint (de tip boolean) este iniþializatã cu valoarea True.

Proprietãþile compuse HorzScrollBar ºi VertScrollBarStabilesc dacã forma este prevãzutã sau nu cu bare de defilare orizontale ºi/sauverticale. Subproprietãþile barelor de defilare sunt centralizate în tabelul urmãtor:

Proprietate DescriereIncrement(o valoare cuprinsã între 1ºi 32767, valoareaimplicitã este 8)

Stabileºte distanþa de deplasare a imaginii din formã în momentul în careutilizatorul efectueazã un clic pe unul din butoanele cu sãgeþi situate înextremitãþile barelor de defilare.

Margin(de tip word, valoareaimplicitã este 0)

Stabileºte momentul de afiºare al barei de defilare. Aceastã proprietatedeterminã numãrul minim de puncte care separã componentele formei ºimuchia formei. În execuþie, dacã o componentã ajunge la o distanþã maimicã decât Margin puncte de la muchie, ºi dacã proprietatea Visibleare valoarea True, atunci se afiºeazã o barã de defilare.

Position(de tip integer, valoareaimplicitã este 0)

Comunicã poziþia actualã a cursorului glisant al barei de defilare.Aceastã valoare este actualizatã automat în execuþie, în funcþie dedefilare.

Range(de tip integer, valoareaimplicitã este 0)

Dimensiunea maximã de defilare, exprimatã în puncte. La bara dedefilare verticalã aceastã valoare trebuie sã fie mai mare decât valoareaproprietãþii Height (în caz contrar bara verticalã este invizibilã). La bara

Page 19: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

19

de defilare orizontalã aceastã valoare trebuie sã fie mai mare decâtvaloarea proprietãþii ClientWidth (în caz contrar bara orizontalã esteinvizibilã). De exemplu, dacã proprietatea Range a unei bare orizontaleconþine valoarea 500, lãþimea formei este 200, atunci valorile proprietãþiiPosition pot fi în intervalul (0, 300).

Tracking(de tip boolean, avândvaloarea implicitã False)

Dacã se alege valoarea True, imaginea din formã se deplaseazã împreunãcu butonul de glisare tras de utilizator. Dacã se alege valoarea False,imaginea rãmâne staticã atâta timp cât utilizatorul trage butonul deglisare, deci actualizarea imaginii defilate va avea loc numai în momentuleliberãrii butonului glisant al barei de defilare.

Visible(de tip boolean, avândvaloarea implicitã True)

Se referã la vizibilitatea barei de defilare. Dacã se alege valoarea True, ºidacã componenta se aflã la o distanþã mai micã decât Margin puncte demuchia formei, atunci bara de defilare devine vizibilã.

Proprietatea IconSpecificã simbolul grafic care va fi utilizat atunci când forma este minimizatã.

Proprietatea KeyPreview (de tip boolean)Se referã la modul de gestiune a evenimentelor referitoare la utilizarea tastaturii(OnKeyDown, OnKeyPress ºi OnKeyUp). Dacã pentru aceastã proprietate se alegevaloarea True, atunci evenimentele referitoare la tastaturã sunt gestionate de formaactualã, ºi nu de componentele aºezate pe formã, chiar dacã în momentul respectiv înfocar se aflã o componentã. De exemplu, sã presupunem cã forma conþine un buton decomandã care este în focar. Dacã utilizatorul apasã o tastã, evenimentele aferentetastãrii vor fi gestionate de procedurile formei ºi nu de procedurile butonului decomandã. Dacã proprietatea este iniþializatã cu valoarea False, care este ºi valoareaimplicitã, atunci evenimentele referitoare la tastare vor fi gestionate de procedurilecomponentei active, ºi nu de procedurile formei.

Proprietãþile Left ºi Top (de tip integer)Stabilesc abscisa, respectiv ordonata:· Formei faþã de colþul stânga sus al ecranului;· Componentei faþã de colþul stânga sau al formei proprietar;· Componentei faþã de colþul stânga sus al unei componente de tip container.Valorile acestor proprietãþi sunt date în puncte.

Proprietatea Menu (de tip TmainMenu)Stabileºte componenta de meniu principal care este utilizat de formã la un moment dat.În perioada de elaborare a proiectului aceastã proprietate este iniþializatã automat cuprima componentã MainMenu aºezatã pe formã; în execuþie valoarea acestei proprietãþipoate fi modificatã, printr-o instrucþiune de atribuire, astfel cã o formã poate sãfoloseascã mai multe componente MainMenu.

Proprietatea NameNumele componentei. Orice componentã trebuie sã aibã un nume unic.

Proprietatea ObjectMenuItemSe utilizeazã pentru a afla sau a preciza o opþiune dintr-un meniu care devine activã sauinactivã atunci când un obiect OLE de pe formular este selectat sau deselectat.

Proprietatea ParentBidiMode(boolean)Stabileºte dacã controlul foloseºte aceeaºi valoare pentru BidiMode ca ºi pãrintele.

Page 20: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

20

Proprietatea ParentFont(boolean)Stabileºte dacã controlul foloseºte acelaºi font ca ºi pãrintele

Proprietatea PixelPerInchSe utilizeazã în timpul rulãrii programului pentru a modifica scara de mãrire a formei larezoluþia curentã. Dacã valoarea este modificatã faþã de valoarea implicitã, forma nu vaavea aceleaºi proporþii la diferite rezoluþii. Pentru a avea efect trebuie ca proprietateaScaled sã fie true.

Proprietatea PopupMenu (de tip TpopupMenu)Identificã componenta de meniu flotant care este utilizatã de formã la un moment dat.Se menþioneazã faptul cã aceastã propeietate nu este iniþializatã automat cucomponenta PopupMenu aºezatã pe formã. În execuþie valoarea acestei proprietãþipoatefi modificatã, printr-o instrucþiune de atribuire, astfel cã o formã poate sã foloseascãmai multe componente PopupMenu.

Proprietatea PositionSe referã la dimensiunea formei ºi al locul de plasare a acesteia la execuþie, faþã de

locul ºi dimensiunea care au fost utilizate în momentul realizãrii proiectului. Valorile posibilesunt:Valoare SemnificaþiepoDesigned Forma va avea aceeaºi poziþie ºi dimensiuni ca în momentul

elaborãrii proiectului.poDefault Poziþia ºi dimensiunea ferestrei vor fi stabilite de cãtre WindowspoDefaultPosOnly Poziþia este stabilitã de cãtre Windows, se pãstreazã dimensiunile.poDefaultSizeOnly Poziþia este pãstratã, Windows-ul alege dimensiunile.poScreenCenter Dimensiunile ferestrei se pãstreazã, plasându-se în centrul ecranului.

Se fac ajustãri pentru aplicaþiile multimonitor.po Dimensiunile ferestrei se pãstreazã, plasându-se în centrul ecranului.

Nu se fac ajustãri pentru aplicaþiile multimonitor.PoMainFormCenter Dimensiunile ferestrei se pãstreazã, plasându-se în centrul ferestrei

principale a aplicaþiei. Nu se fac ajustãri pentru aplicaþiilemultimonitor.

PoOwnerFormCenter Dimensiunile ferestrei se pãstreazã, plasându-se în centrul ferestreispecificate de proprietatea Owner.

Proprietatea PrintScaleSe utilizeazã pentru a afla sau stabili proporþiile ferestrei tipãrite. Valorile posibile

sunt:Valoare SemnificaþiepoNone Nu se scaleazã deloc.poProportional Fereastra este scalatã astfel încât imaginea tipãritã are aproximativ

aceeaºi dimensiune ca ºi pe ecran.poPrintToFit Forma este tipãritã folosind aceleaºi proporþii ca pe ecran, dar

modificate astfel încât sã încapã pe paginã.

Proprietatea ScaledSpecificã dacã forma va fi redimensionatã în funcþie de valoarea PixelsPerInch

Page 21: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

21

Proprietatea ShowHintDacã are valoarea true atunci va fi afiºatã o scurtã informaþie(Hint) despre obiectul

deasupra cãruia s-a oprit mouse-ul.

Proprietatea TagUtilizatã pentru memorarea unei valori întregi. Nu are un rol predestinat.

Proprietatea UseDockManagerStabileºte dacã se utilizeazã un manager pentru operaþia de drag-and-dock.

Proprietatea VisibleDacã este true atunci componenta este vizibilã.

Proprietatea WindowMenuSe foloseºte pentru a alfa sau stabili ce meniu se utilizeazã pentru o fereastrã pãrinte

în cazul aplicaþiilor MDI(multiple document interface).

Proprietatea WindowStateSe referã la modul de afiºare pe ecran a ferestrei. Poate avea urmãtoarele valori

Valori SemnificaþiewsNormal Fereastra este afiºatã normal.wsMinimized Fereastra este afiºatã miminizatãwsMaximized Fereastra este afiºatã maximizatã.

Metode

Metoda BringToFrontAduce forma în faþã.

Metoda CloseSe utilizeazã pentru închiderea formei.

Metoda HideAscunde forma.

Metoda Refresh, RepaintRedeseneazã forma.

Metoda ScaledBy(M, D:integer)Scaleazã toate obiectele de pe formã de M/D ori. Spre exemplu dacã M=15 ºi D=7

dimensiunile tuturor componentelor se vor înmulþi cu valoarea 15/7, dimensiunile fonturilorvor fi modificate de asemenea.

Metoda SendToBackTrimite forma în spatele tuturor ferestrelor existente pe ecran.

Metoda SetFocusSe utilizeazã pentru a selecta obiectul(controlul).

Page 22: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

22

Metoda ShowFace vizibilã forma.

EvenimentePentru fiecare dintre evenimentele prezentate mai jos Delphi-ul ne permite sã scriem o

rutinã care sã trateze evenimentul respectiv. Dacã în Object Inspector executãm dublu clic peunul dintre evenimente Delphi-ul va deschide editorul de cod în care a scris deja antetulprocedurii care va trata evenimentul, noi urmând sã scriem partea de cod care va trataevenimentul. Procedura de tratare a evenimentului va avea cel puþin un parametruSender:TObject care ne va indica cine a generat evenimentul, parametru care în general nu efolosit. Dacã mai sunt necesari anumiþi parametri pentru a trata evenimentul atunci aceºtia vorfi incluºi, spre exemplu pentru evenimentul OnKeyPress, care apare la apãsarea unei taste, vafi transmis ca parametru ºi tasta(caracterul) care a care a fost apãsatã.Evenimentul OnActivate

Apare atunci când forma devine activã.Evenimentul OnCanResize

Apare atunci când se redimensioneazã controlul. Avem posibilitatea sã stabilim noiledimensiuni (NewWidth, NewHeight :Integer) ºi sã stabilim dacã suntem de acord curedimensionarea (Resize:Boolean)

Evenimentul OnClickApare atunci când utilizatorul executã clic pe formã.

Evenimentul OnCloseApare la închiderea formei. Modificând parametrul Action avem posibilitatea de a

decide ce se va executa. Parametrul Action poate avea valorile:Valoare DescrierecaNone Forma nu are voie sã se închidã, deci nu se întâmplã nimic.caHide Forma va fi ascunsã. Aplicaþia o mai poate accesa.caFree Forma este închisã, iar memoria alocatã ei va fi eliberatãcaMinimize Forma va fi minimizatã.

Evenimentul OnCloseQueryApare când metoda Close a fost apelatã. Prin modificarea parametrului

CanClose:Boolean decidem dacã forma se poate închide sau nu.

Evenimentul OnConstrainedResizeApare imediat dupã evenimentul OnCanResize. Se utilizeazã pentru aplicarea

limitãrilor dimensiunilor, parametrii MinWidth, MinHeight, MaxWidth, MaxHeight stabilindlungimea minimã, înãlþimea minimã, lungimea maximã, înãlþimea maximã. La ieºirea dinprocedura de tratare a evenimentului vor fi aplicate constrângerile ºi se vor obþine noiledimensiuni, dupã care va apare evenimentul OnResize care va permite ajustãrile finale.

Evenimentul OnContextPopupApare la clic dreapta. Parametrul MousePos:Tpoint ne va indica poziþia mouse-ului ,

iar valoare pe care o vom atribui parametrului Handle:Boolean va decide dacã va fi afiºat

Page 23: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

23

meniul(dacã Handle=false, ºi proprietatea AutoPopup=true) sau dacã nu se va executa nimic(Handle=true).

Evenimentul OnCreateApare la crearea formei.

Evenimentul OnDblClickApare atunci când utilizatorul executã dubclu clic pe formã.

Evenimentul OnDeactivateApare când forma pierde focusul.

Evenimentul OnDestroyApare când forma este distrusã.

Evenimentul OnDockDropApare când un obiect este depus pe formã prin operaþia de drag-and-dock. Ca

parametri vom avea Source care ne va indica de unde a fost luat obiectul, ºi poziþia la care afost lãsat X, Y.

Evenimentul OnDockOverApare când un obiect este tras peste formã pentru o operaþie de drag-and-dock. Ca

parametri vom avea Source care ne va indica de unde a fost luat obiectul, poziþia la care seaflã X, Y ºi Accept care dacã are valoarea true se acceptã operaþia, altfel nu.

Evenimentul OnDragDropApare când utilizatorul dã drumul obiectului adus prin operaþia de drag-and-drop. Ca

parametri vom avea Source care ne va indica de unde a fost luat obiectul, ºi poziþia la care afost lãsat X, Y.

Evenimentul OnDragOverApare când un obiect este tras peste formã pentru o operaþie de drag-and-drop. Ca

parametri vom avea Source care ne va indica de unde a fost luat obiectul, poziþia la care seaflã X, Y ºi Accept care dacã are valoarea true se acceptã operaþia, altfel nu.

Evenimentul OnEndDockApare când operaþia de tragere s-a terminat. Se utilizeazã pentru a trata situaþia în care

operaþia de drag-and-dock s-a terminat.

Evenimentul OnGetSiteInfoApare înainte de OnDockDrop dacã proprietate DockSite este true.

Evenimentul OnHelpApare când forma primeºte o cerere de ajutor (Help).

Evenimentul OnHideApare atunci când forma este ascunsã(spre exemplu dacã Visible ia valoarea false)

Evenimentul OnKeyDown

Page 24: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

24

Apare la apãsarea unei taste, dacã componenta(în acest caz forma) este selectatã.Parametrul Key ne dã codul tastei apãsate, iar parametrul Shift, care poate avea valorilessShift, ssAlt, ssCtrl, ne indicã care dintre tastele Shift, Ctrl sau Alt a mai fost apãsatã odatãcu tasta. Pentru tastele care nu sunt litere sau cifre se pot folosi codurile virtuale (ex.VK_PAUSE, VK_RETURN, VK_ESCAPE… )

Evenimentul OnKeyPressApare dacã utilizatorul apasã o tastã care genereazã un singur caracter. Parametrul

Key conþine caracterul tastei apãsate. Dacã a fost apãsatã o combinaþie de taste, spre ex.Shift+F1, nu provoacã acest eveniment.

Evenimentul OnKeyUpApare la eliberarea unei taste, dacã componenta(în acest caz forma) este selectatã.

Parametrul Key ne dã codul tastei apãsate, iar parametrul Shift ne indicã care dintre tasteleShift, Ctrl sau Alt a mai fost apãsatã odatã cu tasta. Pentru tastele care nu sunt litere sau cifrese pot folosi codurile virtuale (ex. VK_PAUSE, VK_RETURN, VK_ESCAPE… )

Evenimentul OnMouseDownApare la apãsarea unui buton al mouse-ului. Parametrul Button poate avea valorile

mbLeft, mbRight, mbMiddle ºi ne indicã care dintre butoanele mouse-ului au fost apãsate.Parametrul Shift ne indicã care dintre butoanele Ctrl, Shift sau Alt au fost apãsate, iarparametrii X, Y ne indicã poziþia mouse-ului.

Evenimentul OnMouseMoveApare la miºcarea mouse-ului peste un control(în acest caz formã). Parametrul Shift ne

indicã care dintre tastele Shift, Alt, Ctrl au fost apãsate, iar parametrii X, Y ne indicã poziþiamouse-ului.

Evenimentul OnMouseUpApare 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 apãsate.Parametrul Shift ne indicã care dintre butoanele Ctrl, Shift sau Alt au fost apãsate, iarparametrii X, Y ne indicã poziþia mouse-ului.

Evenimentul OnMouseWheelApare când rotiþa mouse-ului este rotitã, dacã evenimentul nu este tratat (parametrul

Handle are valoare False) atunci apare evenimentul OnMouseWheelUp sau evenimentulOnMouseWheelDown, în funcþie de direcþia în care este învârtitã rotiþa. Parametrul Shift neindicã care dintre tastele Ctlr, Alt sau Shift au fost apãsate, parametrul WheelDelta ne indicãde câte ori a fost învârtitã rotiþa.

Evenimentul OnMouseWheelDownApare la învârtirea rotiþei în jos, dacã evenimentul OnMouseWheel nu a fost tratat.

Procedura are aceeºi parametri ca ºi cea ce trateazã evenimentul OnMouseWheel

Evenimentul OnMouseWheelUpApare la învârtirea rotiþei în sus, dacã evenimentul OnMouseWheel nu a fost tratat.

Procedura are aceeºi parametri ca ºi cea ce trateazã evenimentul OnMouseWheel

Evenimentul OnPaint

Page 25: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

25

Apare atunci când forma este redesenatã.Evenimentul OnResize

Apare la redimensionarea formei.

Evenimentul OnShortCutApare la apãsarea unei taste înainte de evenimentul OnKeyDown. Se utilizeazã pentru

a trata short-cut-urile înainte de a trata apãsãrile obiºnuite de taste.

Evenimentul OnShowApare atunci când forma este fãcutã vizibilã.

Evenimentul OnStartDockApare atunci când utilizatorul începe sã tragã un obiect peste control, iar proprietatea

DragKind are valoarea dkDock.

Evenimentul OnUnDockApare atunci când 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 dusobiectul, iar parametrul Allow îl folosim pentru a permite operaþia (dacã îi atribuim true), saua o interzice.

Probleme ºi întrebãri

1. Cum putem face invizibile butoanele sistem?

2. Cum putem realiza o formã de dimensiune 100x100 care sã nu poatã firedimensionatã?

3. Scrieþi o aplicaþie care sã afiºeze poziþia mouse-ului ca titlu a formei.

4. Scrieþi o aplicaþie care sã se închidã dacã se apasã butonul stâng al mouse-ului peformã.

5. Scrieþi o aplicaþie care sã aibã o formã(fereastrã) care sã „fugã” de mouse-ulutilizatorului ori de câte ori acesta ajunge cu mouse-ul pe ea.

Page 26: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

26

4.3 Lecþia 3 - Butonul

Butonul este des utilizat pentru a iniþia diverse acþiuni la apãsare. În Delphi existã trei tipuride butoane:

Imagine Tip buton DescriereButton butonul standard

BitBtn denumirea vine de la Bitmap Button ºi permite aºezarea unuibitmap (imagini) în interiorul butonului. Existã posibilitateade a stabili câte o imagine pentru fiecare stare a butonului:ridicat, apãsat, dezactivat.

SpeedButton permite adãugarea unei (a unor) imagini care poate (pot)acoperi întreg butonul. Butoanele de acest tip se pot grupa.

Deoarece o mare parte din proprietãþile, metodele ºi evenimentele butoanelor sunt comune cucele de la form voi trata doar ceea ce apare nou.

4.3.1 Button(TButton)

Se utilizeazã pentru a pune un buton standard pe form.

Proprietãþile butonului

Proprietatea ActionEste utilizatã pentru centralizarea rãspunsurilor la comenzile date de utilizator.

Majoritãþii componentelor li se poate asocia o acþiune, acþiunile fiind centralizate ºi gestionatefolosind componenta ActionList din pagina standard.

Proprietatea AnchorsSe utilizeazã pentru a ne asigura cã obiectul îºi pãstreazã poziþia relativ la marginile

pãrintelui(a componentei care o conþine), chiar dacã componenta pãrinte este redimensionatã.Când pãrintele este redimensionat obiectul îºi pãstreazã poziþia relativ la marginile de care afost ancorat.

Proprietatea BidiModePermite ajustarea modului de afiºare ºi a comportamentului automat atunci când

aplicaþia ruleazã într-o zonã în care se citeºte de la dreapta la stânga ºi nu de la stânga ladreapta.

Proprietatea Cancel(boolean)Dacã are valoarea true atunci la apãsarea butonului Escape va avea loc evenimentul

OnClick

Proprietatea Capiton (de tip string)Specificã un ºir de caractere care este afiºat pe buton, de exemplu Button1. În cazul

componentelor aceastã proprietate desemneazã eticheta ataºatã componentei. În acest ultim

Page 27: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

27

caz litera precedatã de caracterul “&” este litera de selecþie a componentei (litera de selecþieeste subliniatã ºi componenta poate fi selectatã prin combinaþia Alt – litera subliniatã).Proprietatea Constraints

Se utilizeazã pentru a stabili dimensiunea minimã ºi maximã pentru o componentã.Aceste dimensiuni nu pot fi depãºite.

Proprietatea CursorStabileºte imaginea utilizatã pentru reprezentarea cursorului mouse-ului.

Pentru selectarea unei imagini se vor folosi diferitele constante predefinite de descriere acursorului. Valoarea implicitã este constanta crDefault.

Proprietatea DefaultDacã are valoarea true atunci la apãsarea tastei Enter va avea loc evenimentul

OnClick.

Proprietatea DragCursorSpecificã ce imagine sã fie utilizatã pentru buton atunci când acesta este tras (dragg)

Proprietatea DragKindSe foloseºte pentru a stabili dacã se iau obiecte de pe control(drag) sau se pot pune pe

el(dock).

Proprietatea DragModeStabileºte dacã utilizatorul poate executa operaþia de drag(tragere). Dacã valoarea

proprietãþii este dnManual utilizatorul nu poate executa operaþia, iar dacã valoarea proprietãþii estedmAutomatic atunci poate executa operaþia de drag.

Proprietatea Enabled (de tip boolean)Se referã la accesibilitatea componentei. Dacã se alege varianta True, care este ºi

valoarea implicitã, atunci componenta va reacþiona la diferitele evenimente referitoare lamouse, tastaturã ºi ceas. Dacã se alege varianta False, componenta va fi inhibatã ºi nu varãspunde la evenimentele echipamentelor de intrare. Valoarea acestei proprietãþi de regulãeste modificatã în execuþie, de exemplu pentru a interzice utilizarea unor butoane decomandã în contextul respectiv. Eticheta unei componente inhibate este afiºatã cu caractereestompate. O componentã inhibatã ulterior poate fi reactivatã, moment în care etichetacomponentei va fi afiºatã cu caractere negre.

Proprietatea compusã FontStabileºte fontul utilizat la textele care sunt afiºate pe obiectul Canvas al formei

precum ºi la textele aferente componentelor aºezate pe formã. Fontul utilizat poate fi definitîn perioada de elaborare a proiectului, însã poate fi modificat în execuþie, prin redefinireasubproprietãþilor Color (culoare), Height (înãlþime), Name (nume), Pitch (lãþimeacaracterelor), Size (dimensiune), sau Style (stil).

Proprietãþile Height ºi Width (de tip integer)Sabilesc înãlþimea, respectiv lãþmea formei sau componentei. Aceste valori suntexprimate în puncte care include ºi dimensiunile rezervate chenarelor.

Page 28: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

28

Proprietatea HelpContextSe foloseºte pentru a stabili un numãr folosit în apelarea ajutorului(Help) context-

senzitiv, pentru a determina care fereastrã de ajutor este afiºatã dacã utilizatorul apasã tastaF1. Dacã HelpContext are valoarea 0 atunci va fi afiºatã fereastra de ajutor corespunzãtoarepãrintelui.

Proprietatea ModalResultProprietatea se poate utiliza pentru a închide o fereastrã modalã (care a fost fãcutã

vizibilã cu metoda ShowModal), returnând valoarea din ModalResult în câmpul ModalResultal ferestrei modale. Nu este necesar sã scriem cod care sã trateze apãsarea butonului. Pentruclarificare vezi Exemplul 1.

Proprietatea poate avea mai multe valori:Constantã Valoare Ce facemrNone 0 NimicMrOk idOK Utilizatorul a ieºit apãsând butonul OKmrCancel idCancel Utilizatorul a ieºit apãsând butonul CANCELmrAbort idAbort Utilizatorul a ieºit apãsând butonul ABORTmrRetry idRetry Utilizatorul a ieºit apãsând butonul RETRYmrIgnore idIgnore Utilizatorul a ieºit apãsând butonul IGNOREMrYes idYes Utilizatorul a ieºit apãsând butonul YESMrNo idNo Utilizatorul a ieºit apãsând butonul NO

Proprietatea ParentShowHint(boolean)Se utilizeazã pentru a ne asigura cã fie toate componentele afiºeazã Hint-ul fie toate nu

îl afiºeazã. Dacã ParentShowHint e true atunci obiectul foloseste ShowHint–ul pãrintelui,altfel decizia de a afiºa Hint-ul va fi luatã în funcþie de ShowHint-ul propriu.

Proprietatea TabOrderPoate lua valori în intervalul –1..32767 ºi stabileºte la a câta apãsare a tastei Tab se

ajunge la obiectul(controlul) respectiv. Primul obiect adãugat are valoarea proprietãþiiTabOrder 0, urmãtorul 1, al treilea 2 s.a.m.d.

Proprietatea TabStop(boolean)Se foloseºte pentru a permite sau interzice accesul la control prin folosirea tastei Tab.

Metode

Metoda ClickSimuleazã apãsarea butonului.

Evenimente

Evenimentul OnEnterApare atunci când controlul(în cazul nostru butonul) primeºte focus-ul, spre exemplu

când se ajunge cu Tab pe el.

Evenimentul OnExit

Page 29: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

29

Apare atunci când controlul pierde focus-ul, spre exemplu când un alt control de pefereastrã primeºte focus-ul.Pentru lãmuriri vezi exemplul 2.

Exemple

Exemplul 1Urmãtoarea aplicaþie va folosi proprietatea ModalResult a butonului.

Creaþi o nouã aplicaþie care are douã form-uri(ferestre): Form1 ºi Form2.

Pe Form1 puneþi un buton a cãrui evenimentOnClick e tratat de procedura:procedure TForm1.Button1Click(Sender: TObject);beginif form2.ShowModal=mrok thenform1.Caption:='OK'else form1.Caption:='No';

end;

Pe Form2 puneþi douã butoane, unul avândModalResult=mrOk, iar celãlalt având

ModalResult=mrNo.Compilaþi, lansaþi în execuþie ºi testaþi funcþionarea programului apãsând succesiv pe celedouã butoane din fereastra a doua(Form2).

Exemplul 2Pentru a ilustra folosirea evenimentelor OnEnter ºi OnExit creaþi o nouã aplicaþie pe a

cãrei fereastrã puneþi douã butoane: Button1 ºi Button2, iar pentru Button2 scrieþi codulurmãtor pentru tratarea evenimentelor OnEnter ºi OnExit:

procedure TForm1.Button2Enter(Sender: TObject);beginbutton2.Caption:='Enter';end;

procedure TForm1.Button2Exit(Sender: TObject);beginbutton2.Caption:='Exit';end;

Compilaþi programul, lansaþi-l în execuþie dupã care treceþi de la un buton la altul folosindtasta Tab.

4.3.2 BitBtn(TBitBtn)Are aceleaºi proprietãþi, metode ºi evenimente ca ºi butonul clasic, în plus adãugându-

se posibilitatea de a avea o imagine(bitmap) pe buton.

Proprietãþi

Page 30: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

30

Proprietatea GlyphCare stabileºte ce imagine va fi afiºatã pe buton. Putem avea maxim patru imagini în

fiºierul bitmap, toate imaginile fiind de aceeaºi dimensiune, aºezate pe aceeaºi linie una lângãcealaltã. Pe buton va fi afiºatã una dintre imagini în funcþie de starea butonului.

Poziþiaimaginii

Stareabutonului

Descriere

Prima Sus Aceasta imagine apare dacã butonul e în poziþia ridicat. Dacã nuexistã alte imagini atunci aceastã imagine este utilizatã ºi pentrucelelalte stãri.

A doua Dezactivat Apare dacã butonul nu poate fi selectat (proprietatea enable = false)A treia Apãsat Apare când s-a fãcut clic pe buton.A patra Jos Apare dacã butonul a rãmas jos.

Proprietate KindStabileºte ce imagine se va afiºa pe buton, precum ºi valoarea ModalResult. Poate

avea urmãtoarele valori:Valoare Buton Descriere

bkCustomVa fi afiºatã imaginea din Glyph, valoarea ModalResult trebuiestabilitã manual

bkAbort Se poate utiliza pentru anularea unei acþiuni.

bkAllEste recomandat a se utiliza pentru selecþia a mai multoropþiuni.

bkCancelValoarea proprietãþii Cancel este setatã automat la valoarea true,ModalResult va avea valoarea mrCancel

bkCloseLa apãsarea butonului fereastra se va închide. Valoareaproprietãþii Default este true.

bkHelp La apãsarea butonului va fi apelat Help-ul programului.

bkIgnoreEste recomandat a se utiliza dacã a apãrut o eroare iarutilizatorul doreºte sã continue operaþia

bkNoValoarea proprietãþii Cancel este setatã automat la valoarea true,ModalResult va avea valoarea mrNo

bkOkValoarea proprietãþii Default este pusã automat pe valoarea true,ModalResult va avea valoarea mrOk

bkRetryEste recomandat a se utiliza dacã a apãrut o eroare iarutilizatorul doreºte sã reîncerce operaþia.

bkYesValoarea proprietãþii Default este pusã automat pe valoarea true,ModalResult va avea valoarea mrOk

Proprietatea LayoutStabileºte poziþia imaginii pe buton. Poate avea urmãtoarele valori:

Valoare DescriereblGlyphLeft Pune imaginea în partea stângã a textului.BlGlyphRight Pune imaginea în partea dreaptã a textului.BlGlyphTop Pune imaginea deasupra textului.BlGlyphBottom Pune imaginea sub text.

Proprietatea Margin

Page 31: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

31

Stabileºte distanþa, în pixeli, între imagine ºi marginea butonului. Dacã valoarea este –1 (valoare implicitã) atunci imaginea ºi textul vor fi centrate

Proprietatea NumGlyphsIndicã numãrul de imagini care se aflã în bitmap-ul memorat în Glyph. Numãrul de

imagini poate fi între 1(valoare implicitã) ºi 4.

Proprietatea SpacingStabileºte numãrul 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 StyleDeterminã modul în care este afiºatã imaginea pe buton. Poate avea urmãtoarele

valori:Valoare DescrierebsAutoDetect Dacã folosim Windows 3.1 bitmap-ul va avea înfãþiºarea din Windows 3.1,

altfel va avea noua înfãþiºare.bsWin31 Va folosi înfãþiºarea standard din Windows 3.1bsNew Va folosi noua înfãþiºare

4.3.3 SpeedButton(TSpeedButton)Faþã de butonul clasic TSpeedButton-ul introduce proprietãþi care sã-i permitã lucrul

în grupuri de butoane, spre exemplu în bare de butoane.

Proprietãþi

Proprietatea AllowAllUpDeterminã 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 acelaºi grup pot fitoate ridicate, altfel unul dintre butoane va fi apãsat, iar la apãsarea unui alt buton butonulapãsat se va ridica. Dacã câmpul GroupIndex este 0 atunci AllowAllUp nu are nici un efect.

Proprietatea DownSe foloseºte pentru a afla dacã butonul este apãsat sau nu. Proprietatea este valabilã

doar dacã proprietatea GroupIndex este diferitã de 0.

Proprietatea FlatDacã are valoarea true butonul nu va fi afiºat 3D. Dacã proprietatea are valoarea true

putem folosi imagini(bitmap) care sã ilustreze starea butonului.

Proprietatea GroupIndexPermite sã selectãm din ce grup face parte butonul. Dacã are valoarea 0 atunci fiecare

buton acþioneazã separat, iar dacã are o valoare mai mare ca 0 atunci desemneazã numãrulgrupului din care face parte butonul. Dacã utilizatorul apasã un buton din grup acesta rãmâneapãsat pânã când un alt buton din grup va fi apãsat.

Proprietatea TransparentSpecificã dacã fundalul butonului este transparent sau nu.

Page 32: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

32

Întrebãri ºi probleme

1. Cum procedãm ca un buton sã nu poatã fi selectat decât cu mouse-ul?.

2. Sã se scrie o aplicaþie care afiºând o fereastrã pe care se aflã un buton care „fuge” oride câte ori utilizatorul a ajuns cu mouse-ul pe el, dar nu poate ieºi în afara ferestrei.

3. Sã se scrie o aplicaþie care afiºeazã o fereastrã pe care se aflã trei butoane din careunul singur poate fi selectat la un moment dat ºi care afiºeazã un mesaj, ca titlu alferestrei, în funcþie de ce buton este apãsat.

4. Sã se scrie o aplicaþie care are butoane ce au altã culoare decât a ferestrei.

Page 33: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

33

4.4 Lecþia 4 –Edit

Se utilizeazã pentru a permite programului sã preia un text de la utilizator. Se poateutiliza ºi pentru a afiºa un text.

Proprietãþi

Proprietatea AutoFocusDacã are valoarea true atunci textul va fi selectat când controlul va primi focus-ul. Se

pune pe valoarea true dacã e mai probabil ca utilizatorul sã înlocuiascã textul existent decât sãadauge ceva la el.

Proprietatea AutoSizeDacã are valoarea true atunci controlul îºi va modifica înãlþimea dacã înãlþimea

textului se schimbã, dacã nu existã posibilitatea ca textul sã fie trunchiat.

Proprietatea BorderStyleDeterminã dacã controlul va avea o bordurã, ºi atunci are valoarea bsSingle, sau nu, ºi

atunci are valoarea bsNone.

Proprietatea CharCaseDeterminã ce fel de litere se pot folosi(mari, mici sau combinat). Proprietatea poate

lua urmãtoarele valori:Valoare DescriereecLowerCase Literele sunt transformate în litere miciecNormal Se pot utiliza atât litere mari cât ºi litere miciecUpperCase Literele sunt transformate în litere mari

Proprietatea HideSelectionDeterminã dacã textul rãmâne selectat atunci când controlul pierde focusul. Dacã are

valoare false atunci la pierderea focusului textul rãmâne selectat. Se poate accesa textulselectat prin intermediul proprietãþii SelText. Poziþia de început a selecþiei este memoratã înproprietatea SelStart, iar lungimea textului selectat e memoratã în SelLength.

Proprietãþile ImeMode ºi ImeNameSe utilizeazã pentru a stabili anumite opþiuni pentru editorul IME ce se utilizeazã

pentru limbile asiatice.

Proprietatea MaxLengthStabileºte numãrul maxim de caractere ce poate fi introdus. Dacã are valoarea 0 atunci

nu existã nici un fel de limitare.

Proprietatea OEMConvertDacã 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 fiºier.

Proprietãþile ParentBiDiMode, ParentColor, ParentCtl3D, ParentFont, ParentShowHintAu valoarea true dacã se doreºte ca proprietatea a cãrei nume apare dupã Parent sã

aibã aceeaºi valoare ca ºi a pãrintelui(cu a componentei pe care se aflã aºezat)

Page 34: manual Delphi

Utilizare Delphi 5 autor Popa Daniel

34

Proprietatea PasswordCharSpecificã ce caracter se va afiºa dacã se doreºte citirea unei parole care nu trebuie sã

aparã pe ecran. Dacã are valoarea #0 atunci caracterele se vor afiºa normal.

Proprietatea ReadOnlyDacã are valoarea true nu se va putea modifica conþinutul Edit-ului.

Proprietatea TextConþine textul ce se afiºeazã în Edit. Proprietatea poate fi utilizatã pentru a prelua ceea

ce a tastat utilizatorul.