Ce este Delphi? O priire rapi!" asupra MDI Delphi Fereastra principal Inspectorul de Obiecte Spaiul de lucru Delphi Pri#ul pro$ra# Crearea programului Modificarea programului nchiderea programului Al !oilea pro$ra# Crearea programului Modificarea programului O s%urt" pre&e'tare a li#(a)ului O()e%t Pas%al U*I+,urile -' Delphi A'ato#ia u'ui U*I+ Delphi 1.1. CE ES+E DELPHI? Delphi este un produs program realizat de firma Borland pentru scrierea aplicaiilor Windos! Cu Delphi se pot scrie programe pentru Windos mult mai rapid "i mai u"or! Se pot crea console de aplicaii Win#$ sau programe de interfee grafice pentru utilizator! C%nd se creaz& acestea din urm cu Delphi& se dispune de toat puterea pe care o ofer limba'ul de programare (Ob'ect )ascal* +ntr,un mediu de dez-oltare rapid a aplicaiilor! .cest lucru presupune c se poate crea interfaa utilizator a unui program (interfaa utilizator +nseamn meniurile& csuele de dialog& fereastra principal etc!* folosind tehnicile drag,and,drop pentru o dez-oltare rapid a aplicaiilor (D/.*! Se pot pune pe form,uri butoane .cti-e0 pentru a crea programe specializate cum ar fi motoare de cutare pe eb! Delphi le ofer pe gratis1 Delphi genereaz rapid coduri compilate! )rodusul program Delphi se bazeaz pe limba'ul de programare Ob'ect )ascal cu toate a-anta'ele oferite de programarea pe obiecte a acestuia +n scopul dez-oltrii rapide a aplicaiilor! /eu"e"te s ascund micile detalii ce constituie inima unui program Windos& dar nu poate scrie programe +n locul programatorului! )entru a fi un programator bun trebuie +n-at "i programarea +n Delphi! 1./. O PRIVIRE RAPID ASUPRA MDI DELPHI .ceast seciune conine o pri-ire rapid a Mediului de Dezvoltare Integrat Delphi (MDI Delphi*! C%nd se deschide pentru prima dat programul& pe ecran se -a afi"a at%t o form goal c%t "i un MDI Delphi (Fig nr 1.1 Mediul de Dezvoltare Integrat Delphi*! 2 Fig nr 1.1 Mediul de Dezvoltare Integrat Delphi MDI (mediul de dez-oltare integrat* Delphi se compune din trei pri (Fereastra principal, Inspectorul de Obiecte, Spaiul de lucru Delphi). 1./.1. 0EREAS+RA PRI*CIPAL Fereastra de sus poate fi considerat ca fiind fereastra principal Fig nr 1.2. Componentele ferestrei principale)! 3a conine barele de unelte "i paleta ecomponente! )e prima bar a acestei ferestre se afl denumirea proiectului Delphi +n lucru (de e4emplu1 )ro'ect2*! Sub bara de titlu este plasat meniul principal! Barele de unelte Delphi ofer& printr,un clic5& aciuni asupra obiectelor cum ar fi de e4emplu deschiderea& sal-area "i compilarea! Paleta de componente conine o serie lung de componente ce se pot pune pe form,uri! (Componentele sunt te4t label,uri& controale de editare& list bo4,uri& butoane etc!*! )entru comoditate componentele sunt +mprite +n grupuri! De,a lungul prii de sus a paletei de componente sunt a"ezate butoanele! Diferitele componente care se ofer se pot e4plora e4ecut%ndu,se un clic5 pe ele! )entru a pune o component pe form& se -a e4ecuta un clic5 pe butonul componentei +n cadrul paletei de componente "i apoi +nc un clic5 pe form,ul +n care se dore"te s apar acea component! .ceast fereastr poate fi mutat +n orice poziie a ecranului prin tehnica drag, and,drop (fi4%nd cursorul pe bara de titlu "i trg%ndu,l +n noua locaie*! $ 0ereastra pri'%ipal12 6arele de unelte "i )aleta de componente I'spe%torul !e O(ie%te Spa3iul !e lu%ru Delphi (Form Designer* Fig nr 1.2. Componentele ferestrei principale +er#e' 'ou2 O component este o pies binar de softare ce +ndepline"te funcii specifice predefinite& cum ar fi te4t label& buton de editare sau un list bo4! 1././. I*SPEC+ORUL DE O4IEC+E Sub fereastra principal "i +n partea st%ng a ecranului se gse"te I'spe%torul !e O(ie%te 5Fig nr. 1.. !"iectul Inspector6! Cu a'utorul lui se -or modifica proprietile componentelor "i ale unor e-enimente! Se -a folosi constant +n timpul lucrului cu Delphi! Inspectorul de Obiecte are dou seciuni1 Properties "i #vents! $ec%iunea Properties prezint proprietile componentei acti-e la un moment dat! Propriet%ile unei componente controleaz modul cum opereaz acea component! De e4emplu& schimbarea proprietii Color a unei componente schimb culoarea fundalului acelei componente! 7ista de proprieti disponibile -ariaz de la component la component& de"i componentele au& de obicei& "i c%te-a elemente comune (de e4emplu1 proprietile Width,lime "i 8eight, +nlime*! $ec%iunea #vents conine o list de e-enimente pentru o component! 3-enimentele apar pe msur ce utilizatorul interacioneaz cu o component! De e4emplu& c%nd se d clic5 pe o component se genereaz un e-eniment care spune dac s,a dat clic5 pe component! Se poate scrie un cod care s rspund la aceste e-enimente& +ndeplinind aciuni specifice c%nd apare un e-eniment! 7a fel ca la proprieti& e-enimentele la care se poate rspunde -ariaz de la component la component! +er#e'i 'oi2 Proprietate determin modul de operare a unei componente! 9n eveniment este ceea ce apare ca rezultat al interaciunii unei componente cu utilizatorul sau cu Windos! 9n m&nuitor de evenimente este o seciune de cod care se apeleaz +n aplicaia curent ca rspuns la un e-eniment! # 6arele de unelte )aleta de componente Fig nr. 1.. !"iectul Inspector 1./.7. SPA8IUL DE LUCRU DELPHI )artea principal a MDI Delphi este spa3iul !e lu%ru 5Fig nr 1.'. Masa de lucru a sistemului Delphi6! Iniial& spaiul de lucru afi"eaz Form Designer,ul! Fig nr 1.'. Masa de lucru a sistemului Delphi .cest Form Designer a'ut la crearea form,urilor! n Delphi& o form reprezint o fereastr +n program! Forma poate fi fereastra principal a programului& o csu de : Seciunea proprietilor Seciunea e-enimentelor dialog sau orice alt tip de fereastr! Form Designer se folose"te pentru a plasa& a muta "i a stabili mrimile componentelor& ca parte a procesului de creare a form,ului! n spatele Form Designer,ului se ascunde #ditorul de Cod (Code 3ditor*! 3ditorul de Cod este locul unde se -a tipri codul atunci c%nd se scriu programe (Fig 1.(. Fereastra #ditorului de cod*! Inspectorul de !"iecte) Form Designer) Paleta de Componente *i #ditorul de Cod lucreaz interacti- pe msur ce se construiesc aplicaiile! Fig nr 1.(. Fereastra #ditorului de cod .cum& dup ce s,a -zut din ce este alctuit MDI Delphi& se -a trece la crearea primului program +n Delphi! 1.7. PRIMUL PROGRAM 1.7.1. CREAREA PROGRAMULUI Dac este pornit Delphi pe ecran ar trebui s apar un form gol! Din oficiu& acesta este numit Form1! (;umele form,ului are +nsemntate +n Delphi& dar se -a prezenta acest lucru mai t%rziu!* 7a st%nga form,ului& Inspectorul de Obiecte arat propriet%ile pentru form! Se -a e4ecuta un clic5 pe bara de titlu a Inspectorului de Obiecte! )roprietatea Caption iese +n e-iden "i se -a obser-a cursorul care clipe"te! (Dac proprietatea Caption nu se -ede& -a trebui derulat Inspectorul de Obiecte "i localizat aceast proprietate! )roprietile sunt listate +n ordine alfabetic!* 7a acest prim program propunem ca la proprietatea Caption s se scrie <Pro$ra# !i!a%ti% 19 pentru a schimba titlul form,ului +Fig nr. 1.,. Primul program Delphi-. = 3ditorul de cod *ot12 )e msur ce se -or modifica proprietile& Delphi -a afi"a imediat rezultatele schimbrii strilor proprietilor& unde este cazul! Dup ce se -a tipri noul titlu se -a obser-a c +n fereastra de titlu a form,ului apare ceea ce s,a scris la proprietatea Caption! 9rmtoarea aciune -a fi un clic5 pe butonul .un de pe bara de unelte (cea cu sgeat -erde*! (Se poate& de asemenea& s se apese tasta F/ sau s se aleag comanda .un din meniul principal!*! Ca efect al acestei aciuni Delphi a construit un program! Se afi"eaz form,ul iar titlul acestuia -a fi <Pro$ra# !i!a%ti% 195 Fig nr. 1.0. #1ecu%ia primului program6! n acest caz& programul +n derulare arat aproape identic cu form,ul gol& el apare +n acela"i loc ca "i form,ul +n Form Designer! (34ist o diferen pentru c Form Designer afi"eaz un grid de aliniere +n timp ce programul +n derulare nu face acest lucru!*! .stfel s,a scris primul program& nu este mult& dar este totu"i un program Windos! Fereastra principal a programului poate fi mutat trag%nd de bara de titlu a ei& poate fi mininizat& ma4imizat "i +nchis prin apsarea butonului Close! Se -a putea chiar localiza programul +n Windos 34plorer (probabil c -a fi +n directorul 23Delphi,3Pro4ects ca Pro4ect1.e1e* "i se -a putea da dublu,clic5 pe el ca s funcioneze! Fig nr .1.,. Primul program Delphi 5n Form Designer Fig nr. 1.0. #1ecu%ia primului program 1.7./. MODI0ICAREA PROGRAMULUI )oate c schimbarea titlului formei +n <Pro$ra# !i!a%ti% 19 a +nsemnat foarte puin! n continuare se va aduga o etichet pe form! n acest scop& prin apsarea butonului Close& aflat +n colul din dreapta sus a ferestrei& se -a putea +nchide e4ecuia > programului <Pro$ra# !i!a%ti% 19& dac +nc mai merge! )e ecran se -a afi"a din nou Form Designer put%ndu,se trece la modificarea form,ului! )entru a face programul mai -iabil& se -a aduga un te4t& chiar +n centrul ferestrei! n acest scop este necesar s se adauge un te1t la"el la form! Etape !e lu%ru2 2! Mai +nt%i se -a da un clic5 pe Standard +n )aleta de Componente! .l treilea buton cu componente de pe palet are un caracter A pe el& prin intermediul lui se -or crea etichetele! Dac se a"eaz cursorul mouse,ului pe acel buton -a aprea scris 6a"el. $! Se -a da clic5 pe butonul respecti- "i apoi se -a da clic5 oriunde pe form! 3fectul acestei aciuni -a fi plasarea unei componente label pe form a-%nd ca titlu& din oficiu& 6a"el1! #! n continuare se -a consulta Inspectorul de Obiecte pentru a se modifica proprietile etichetei create! n acest moment Inspectorul de Obiecte indic proprietile pentru 7abel2 (+nainte arta proprietile pentru Form2*! Din nou iese +n e-iden proprietatea Caption! :! Se -a e4ecuta un clic5 pe bara de titlu a Inspectorului de Obiecte "i se -a selecta proprietatea Caption (dac nu a fost scoas +n e-iden*! n coloana de -alori a proprietii se -a scrie ceea ce se dore"te ca eticheta s afi"eze de e4emplu1 <4u' e'it la lu%ru -' Delphi9. .cum label,ul din form afi"eaz mesa'ul :4u' e'it la lu%ru -' Delphi9 5Fig nr 1.7. Introducerea unei etichete pe form6! =! ?ot din Inspectorul de Obiecte& se -a putea schimba mrimea te4tului din label! n acest scop se -a da dublu,clic5 pe proprietatea Font! )roprietatea se -a e4tinde& indic%nd dedesubt atributele caracterelor! Se selecteaz tipul font,ului& de e4emplu1 <?imes ;e /oman@& stilul se -a selecta 6old Italic! >! Se localizeaz proprietatea $ize sub Font "i se schimb mrimea caracterelor la $: (+n prezent este A*! De +ndat ce se -a apsa 3nter sau se -a da un clic5 pe form& label,ul se schimb la noua dimensiune! Fig nr 1.7. Introducerea unei etichete pe form B! Dac nu este centrat pe form 7abel,ul -a putea fi mutat! 3fectu%ndu,se un dublu clic5 de mouse pe componenta 7abel aceasta se -a a"eza pe mi'locul formei (dac mi'locul formei este de'a ocupat& noua component -a apare +n locaia din dreapta 'os*! A! Se e4ecut sal-area 9;I?,ului (codului surs al programului realizat* cu File3$ave 8s.. n csua intitulat CFile name9: din fereasta programelor se -a scrie numele programului creat! Se iese select%nd butonul $ave din cadrul acelea"i ferestre! B D! Se e4ecut sal-area proiectului cu a'utorul comenzilor File3$ave Pro4ect 8s2 Sistemul deschide fereastra $ave Pro4ect; 8s unde se -a gsi eticheta CFile name1@ urmat de o csu de editare& +n interiorul acesteia se -a tasta numele noului proiect! Se prse"te fereastra acion%nd butonul Sa-e! 3fectul acestor sal-ri +l constituie realizarea codului program pentru <;I= *i proiect +programul surs cu e1tensia !"S-! Se trece la rularea programului! n acest scop din meniul principal se aleg comenzile .un3.un. Codul program realizat anterior -a fi compilat "i lansat +n e4ecuie! n urma acestei operaii programul surs este transformat +n program e4ecutabil cu e4tensia #$#! )e ecran se -a afi"a forma realizat! .cum se -a obser-a <4u' e'it la lu%ru -' Delphi9 afi"at +n centrul form,ului +Fig nr 1./. #1ecu%ia programului cu etichet-. Fig nr 1./. #1ecu%ia programului cu etichet 1.7.7. ;*CHIDEREA PROGRAMULUI n -ederea trecerii la un alt program& trebuie s se +nchid proiectul curent din MDI Delphi! Se -a alege comanda File3Close 8ll) din meniul principal! n cazul +n care s,au efectuat alte modificri pe proiectul realizat se -a da clic5 pe ;o dac nu se dore"te sal-area schimbrilor sau >es dac se dore"e sal-area acestora! 1.<. PROGRAMUL AL DOILEA 1.<.1. CREAREA PROGRAMULUI AL DOILEA Scopul acestui e4erciiu este s apar cu-intele <Vi&uali&are =isier@ "i <A%tuali&are =isier9 pe form la acionarea unor butoane! .cest e4erciiu -a oferi "i un model de urmat c%nd se -or testa diferite fr%nturi de cod pe programele urmtoarele! n prima etap pe form se -or insera butoane "i etichete! n acest scop se -or parcurge urmtorii pa"i1 2! Se alege File3;e? 8pplication din meniul principal pentru a deschide o nou aplicaie (se -a da un clic5 pe ;o dac nu se dore"te sal-area proiectului actual*! Se afi"eaz o nou form +n Design! $! Din )aleta de Componente Standard se -a selecta iconul ce are pe el O> simboliz%nd componenta Buttons! #! Se -a plasa cursorul oriunde pe form "i se d un clic5! )e form -a apare un buton& intitulat Button1! Se repet operaia pentru 6utton$! :! Se -a alege componenta 7abel "i se -a plasa +n dreapta butoanelor! Componenta 7abel are& din oficiu& titlul 6a"el1! Inserarea altor componente A de acela"i tip -or a-ea ca titlu numele componentei urmat de cifrele $& # "!a!m!d! n acest moment pe form se afl dou componente de tip buton "i cinci componente de tip etichet! 1.<./. MODI0ICAREA PROGRAMULUI AL DOILEA n prima -ersiune a lui <Pro$ra# !i!a%ti% 19 s,a folosit Inspectorul de Obiecte pentru a schimba proprietatea Caption a unui 7abel! .ceast modificare s,a aplicat +n Design=ime "i astfel a fost -zut imediat ce s,a rulat programul! n acest e4erciiu se -a schimba titlul uneia dintre etichete cu a'utorul codului& modificare e4ecutat +n .un=ime . *ot11 C%nd se schimb proprietile unei componente prin Inspectorul de Obiecte "i Form Designer& se spune c se face o schimbare Design%i&e! C%nd se modific o proprietate prin cod& care se e4ecut la rularea programului& se spune c se face o modificare 'un%i&e! )entru a schim"a proprietatea Caption +n .un=ime& se -a proceda astfel1 2! Se -a da dublu clic5 pe butonul de pe form,ul acti-! Imediat Delphi genereaz un m&nuitor de evenimente pentru e-enimentul OnClic5 al butonului! Codul generat arat astfel1 pro%e!ure +0or#.4utto'Cli%?5Se'!er2 +o()e%t6@ (e$i' A e'!E $! M&nuitorul de evenimente !nClic@ este o seciune a codului care -a fi e4ecutat de fiecare dat c%nd se apas pe buton (+n timp ce programul se deruleaz*! Cursorul de editare este plasat +ntre +nceputul "i sf%r"itul declaraiilor ((e$i'..e'!@6 "i a"teapt ca programatorul s tipreasc codul! Se -a introduce la cursor urmtorul cod1 La(el*.Captio' 2B CA%tuali&are =isierD@ unde * este numrul etichetei (dac butonul cruia i se ata"eaz eticheta este butonul cu numrul ;& +n cazul e4emplului curent ; este =* ! Codul program pentru e-enimentul de apsare al butonului nr2 -a fi1 pro%e!ure +0or#1.4utto'1Cli%?5Se'!er2 +O()e%t6@ (e$i' La(elE.Captio'2BFVi&uali&are =isierF@ e'!@ e'!. .ceast sec-en de instruciuni indic faptul c la acionarea butonului cu numrul 2 se -a cupla eticheta nr =! n acest scop& +n seciunea e-enimentelor (3-ents* se -a selecta& din lista de e-enimente OnClic5& e-enimentul corespunztor "i anume 6utton2Clic5 (Fig nr 1.1A. Cuplarea evenimentului !nClic@ la Button1*! D Fig nr 1.1A. Cuplarea evenimentului !nClic@ la Button1 .cela"i efect se obine dac etichetei i se aribuie nume prin cod program& iar la e-enimentul OnClic5 al butonului se -a selecta numele etichetei ata"ate! Se deschide procedura etichetei& e4ecut%nd un dublu clic5 e ea +n cadrul form, ului! n cadrul acesteia se -a scrie sec-ena de cod 1 (abel).*aption+,-"ctualizare fi.ier-/ Se re-ine la form acion%nd tasta F2$! Se fi4eaz cursorul pe Button2 iar din !"4ect Inspector se selecteaz seciunea #vents! 7a e-enimentul !nClic@ se -a selecta numele etichetei ata"ate "i anume 6a"el2Clic@ +Fig nr. 1.11. $electarea evenimentului !nClic@ pentru Button2-! Faloarea e-enimentului OnClic5 +n cele dou -ariante este diferit! Fig nr. 1.11. $electarea evenimentului !nClic@ pentru Button2 #! 3ticheta CCreare =iGier@ a fost realizat cu proprietatea Caption din !"4ect Inspector fiind afi"at +n form chiar de la creare! .ceast -ariant de atribuire a -alorii etichetelor se cheam Design%i&e. 3tichetele C.ctualizare fisier@ "i <Fizualizare fi"ier@ au fost create cu metoda de lucru 'un%i&e put%nd fi -izibile doar la rularea programului! Diferena dintre cele dou metode const +n faptul c .un=ime solicit cod program "i -a afi"a -alorile doar +n e4ecuie (Fig nr. 1.12. Diferen%a dintre Design%i&e .i 'un%i&e prin e1emplul etichetelor*! :! n continuare se -a da un clic5 pe butonul .un din bara de unelte pentru a rula programul! C%nd programul ruleaz& se -a obser-a c etichetele +nc au titlul 7abel= respecti- 7abel$! Schimbarea denumirii etichetei +n -alorile ata"ate se -a face dup ce s,a dat un clic5 pe butoanele crora li s,a ata"at eticheta (Fig nr 1.1. Programul nr 2 5n e1ecu%ie*. 3ste necesar s fie acionate cele dou butoane ata"ate etichetelor pentru ca -alorile s fie -izibile! 2G Fig nr. 1.12. Diferen%a dintre Design%i&e .i 'un%i&e prin e1emplul etichetelor Fig nr 1.1. Programul nr 2 5n e1ecu%ie Fig nr 1.1'. .un=ime la etichete n urma acionrii butoanelor 2 "i $ se -or afi"a "i cele dou -alori ata"ate (Fig nr 1.1'. .un=ime la etichete*! Dac lui 7abel= nu i s,a ata"at cod program& -aloarea ata"at etichetei -a fi -izualizat doar prin intermediul componentei 6utton2! 3tichetei cu numele 7abel$ i,a fost ata"at cod program! De aceea -aloarea acesteia poate fi -izualizat fie acion%nd butonul ata"at& fie acion%nd direct eticheta! O(s2 Orice modificare efectuat +n cadrul formelor de lucru solicit sal-area at%t a 9;I?,ului c%t "i a proiectului +nainte de lansarea +n e4ecuie! 22 1.E. O SCUR+ PREHE*+ARE A LIM4AIULUI O4IEC+ PASCAL )rin 2DD: 6orland a +nceput s lucreze la o unealt de dezvoltare rapid a aplica%iilor (D/.* pe care a numit,o Delphi! C%nd s,a stabilit c arhitectura bazat pe componente era cea mai bun metod de a implementa D/.& a fost necesar s se cad de acord "i asupra limba'ului de programare care urma s fie inima sistemului! 7a -remea aceea 6orland era singurul -%nztor& +n mas& care comercializa un compilator )ascal! 6orland era cunoscut ca fiind compania care producea cele mai bune unelte )ascal! 6orland era mai mult sau mai puin proprietarul lui )ascal! Cu toate c 6orland nu deinea limba'ul )ascal +ntr,un sens legal& se simea c +l stp%ne"te& datorit poziiei sale +n lumea )ascal& "i a-ea libertatea s opereze noi trsturi sau s aduc +mbuntiri! n plus& nu era nici un comitet de standarde pentru )ascal& nici mcar un standard scris care s defineasc limba'ul )ascal! ."a c 6orland a creat Delphi folosind )ascal ca limba' de baz (numele i,a rmas totu"i "i a de-enit numele oficial al produsului*! nainte ca Delphi s ia fiin& 6orland modificase de'a limba'ul )ascal +n direcii poziti-e! De e4emplu& 6orland de'a e4tinsese )ascal,ul prin crearea unui nou limba' numit !"4ect Pascal! Se poate spune c Ob'ect )ascal este pentru )ascal ceea ce este limba'ul CHH pentru limba'ul de programare C! Ob'ect )ascal a adugat clase lui )ascal& orient%ndu,l spre lumea limba'elor de programare orientate pe obiecte (OO)*! )e msur ce Delphi se dez-olta& erau adugate noi comportamente ale limba'ului "i cu-inte cheie& pentru a face fa modelului de componente! )rin modificarea limba'ului )ascal& pentru ca acesta s se potri-easc cu modelul de componente& 6orland a reu"it s implementeze D/.! n esen& limba'ul Ob'ect )ascal a fost modificat& dup ne-oi& pe msur ce au aprut problemele legate de design& +n timpul dez-oltrii produsului numit Delphi! /ezultatul a fost un limba' care lucreaz perfect cu modelul de componente! Cu toate c modificarea limba'ului )ascal a putut fi considerat ca un pas +ndrzne pentru 6orland& nu a fost fr precedent! Mai +nainte& Microsoft a preluat limba'ul 6.SIC "i l,a modificat pentru a produce un nou limba' numit Fisual 6asic! .cest nou limba' a fost aproape de nerecunoscut c%nd a fost comparat cu originalul limba' 6.SIC care i,a ser-it ca baz! 6orland "i,a asumat un risc +n modificarea lui )ascal! 7a urma urmei acesta a a-ut o baz loial de clieni crora s,ar fi putut s nu le plac schimbrile fcute! Ii totu"i 6orland a fost +ntr,o poziie solid pe piaa )ascal "i a mers +nainte cu planurile sale! /ezultatul a fost un succes uluitor! Ob'ect )ascal este un limba' de programare puternic! 3l este unic pentru c este at%t puternic c%t "i relati- u"or de +n-at! Ob'ect )ascal d posibilitatea s se profite de programarea orientat pe obiecte la ma4im! .cest lucru are beneficiile sale pentru c ofer posibilitatea s se creeze obiecte care pot fi folosite +n programul curent "i refolosite +n programele urmtoare! +er#e' 'ou2 9n o"iect este o pies binar de softare care +ndepline"te anumite sarcini de programare! (Componentele sunt obiecte& dar nu toate obiectele sunt componente!* 9n obiect +i arat utilizatorului (programatorului care utilizeaz obiectul* numai at%t c%t este ne-oieE de aceea utilizarea obiectului este simplificat! ?oate mecanismele interne pe care utilizatorul nu trebuie s le "tie sunt ascunse! ?oate acestea sunt incluse +n conceptul programrii orientate pe obiecte! )rogramele Delphi sunt foarte mult 2$ a4ate pe OO) ()rogramarea Orientat Obiect* pentru c Delphi folose"te foarte mult componentele! Dup ce s,a creeat o component& ea poate fi reutilizat +n orice program Delphi! O component poate fi& de asemenea& e4tins prin mo"tenire pentru a se crea o nou component cu trsturi adiionale! Chiar mai mult& componentele +"i ascund detaliile interne "i +l las pe programator s se concentreze asupra aciunii lor! 1.J. U*I+,URILE ;* DELPHI . programa +nseamn mai mult dec%t a se tipri un cod! 3ste de fapt combinaia dintre conceptualizarea unei sarcini de programare "i tiprirea codului care s +ndeplineasc ulterior sarcina! Codul tiprit -a fi reinut +ntr,un fi"ier te4t! Compilatorul ia acest fi"ier te4t "i +l transform +ntr,un cod pe care computerul +l poate +nelege! Fi"ierul te4t pe care Delphi +l transform +ntr,un cod se nume"te U*I+ (unitate*! +er#e' 'ou2 9n <;I= 5unitate* este un fi"ier te4t care poate fi transformat +ntr,un cod program! O aplicaie cu programe de Interfe%e Brafice Pentru <tilizator (IGPU* +n Delphi -a conine cel puin dou 9;I? , uri! 01I%2ul surs a proiectului care -a conine codul sursei proiectului! Se -a putea -izualiza 9;I?,ul surs a proiectului aleg%ndu,se !ro3ect24ie5 Source din meniul principal! ;u se recomand s se modifice 9;I?,ul surs al proiectului! Dac accidental se modific 9;I?,ul surs al proiectului& s,ar putea ca aplicaia s nu mai funcioneze! (.numite tehnici de programare a-ansat cer +ns modificarea codului surs a proiectului*! .l doilea tip de 9;I? care apare +ntotdeauna +ntr,o aplicaie IJ)9 +n Delphi este 01I%2ul for&2ului principal! 9;I?,ul form,ului este o unitate de cod surs cu o form asociat! .cest tip de unit are e4tensia fi"ierului .!"S "i -a fi cel mai des folosit +n programele Delphi! O aplicaie Delphi IJ)9 -a a-ea +ntotdeauna un 9;I? al form, ului (pentru form,ul principal*& dar poate a-ea una sau mai multe 9;I?,uri de form,uri adiionale! De e4emplu o aplicaie care afi"eaz o csu .bout -a a-ea un 9;I? pentru form,ul principal "i unu pentru csua .bout! *ot12 ?ermenul C.plicaie Delphi IJ)9@ este folosit pentru a distinge o aplicaie IJ)9 de o aplicaie consol! O aplicaie consol este o aplicaie de #$ bKts Windos care funcioneaz +ntr,o fereastr consol (DOS bo4*! O aplicaie consol nu are form principal "i poate sau nu s conin alte form,uri! O aplicaie consol are oricum una sau mai multe 9;I?,uri! 34ist "i un al treilea tip de 9;I? ce -a putea fi folosit +n aplicaiile Delphi! .cesta este un tip de <;I= care con%ine numai codul surs! 3l -a fi apelat de alte 9;I?,uri din proiect!
1.K. S+RUC+URA U*UI U*I+ DELPHI 9;I?,urile Delphi trebuie s urmeze un format predefinit astfel +nc%t compilatorul s poat s le citeasc "i s le transforme codul! 9n 01I% al unui proiect Delphi conine cu-%ntul cheie progra& urmat de numele 9;I?,ului "i un bloc al 2# codului marcat de cu-intele cheie de +nceput (begin* "i sf%r"it (end*! Se poate -edea cum arat un 9;I? aleg%nd Cie?DPro4ect $ource din meniul principal Delphi! 9;I?,ul surs pentru un proiect Delphi din oficiu arat ca +n .ne4a2! *ot12 ;umrul r%ndurilor din .ne4a2 nu face parte din 9;I?! Sunt trecute acolo numai pentru referin! 7imba'ele )ascal nu numeroteaz r%ndurile! Anexa 1. Sursa proiectului pentru un proiect Delphi din oficiu 01: program Project1; 02: 03: uses 04: Forms, 05: Unit1 in `Unit1.pas' {Form1; 0!: 0": {#$ %.$&' 0(: 0): *egin 10: +pp,ication.-nitia,i.e; 11: +pp,ication./reateForm01Form1, Form12; 12: +pp,ication.$un; 13: en3. n r%ndul 2& cu-%ntul cheie al programului identific acest 9;I? ca principalul 9;I? surs al programului! ;umele unit,ului& Pro4ect1& urmeaz dup cu-%ntul cheie program (Delphi +i atribuie proiectului un nume din oficiu p%n c%nd -a fi sal-at cu un alt nume*! ncep%nd cu r%ndul #& se obser- o seciune identificat de cu-%ntul cheie uses. Orice nume de 9;I? care urmeaz acestora& p%n la acolade& sunt alte 9;I?,uri dec%t cele pe care le cere acest 9;I? pentru a le transforma! Cu-intele cheie folosite -or fi descrise +n detaliu mai t%rziu! )e r%ndul B se obser- o directi- a compilatorului care +i spune lui Delphi s includ fi"a surs a proiectului (LM/ N!/3SO*! /%ndul D conine cu-%ntul cheie de +nceput ("egin* "i r%ndul 2# +l conine pe cel de sf%r"it (end*! Se obser- c& end& cu-%ntul cheie de sf%r"it este urmat de un punct! (9n 9;I? poate a-ea mai multe "locuri de cod marcate ca "egin *i end dar o singur instruc%iune end final.* Codurile din r%ndurile 2G& 22 "i 2$ iniializeaz aplicaia& creeaz form,ul principal al aplicaiei "i o lanseaz +n e4ecuie! )entru a scrie programe Delphi nu trebuie cunoscute detaliile acestui cod! *ot12 Cu-intele cheie de +nceput (begin* "i sf%r"it (end* marcheaz un "loc de cod! 9n bloc de cod poate conine numai c%te-a r%nduri de cod sau c%te-a sute (sau chiar mii de r%nduri*! 9n alt tip de 9;I? )ascal este prezentat +n ane4a $! Dac se alege File E ;e? from din meniul principal& c%nd apare dialogul ;e? Items se -a cuta icoana 9;I? "i se -a da dublu,clic5 pe ea! Delphi -a crea un nou 9;I? "i +l -a afi"a +n 3ditorul de Cod! .ne4a $ arat codul generat pentru acest 9;I?! A'eLa /. U' U*I+ Pas%al $ol 5U*I+ surs16 01: unit Unit2; 02: 03: inter4ace 04: 05: imp,ementation 0!: 0": en3. 2: Codul din .ne4a $ difer de cel din .ne4a 2 prin faptul c are marcat seciunea de interface "i i&ple&entation! 9n 9;I? care nu este 9;I? principal de surs trebuie s conin o sec%iune de interfa% "i o sec%iune de implementare! .ne4a $ difer de .ne4a 2 prin faptul c +n aceasta (.ne4a $* nu e4ist o instruciune de +nceput de bloc (6egin*! 9;I?,ul principal al unui program trebuie s conin +n mod obligatoriu cu-inte Begin "i end& dar un 9;I? surs trebuie s conin doar un end! SUMAR n acest capitol s,a fcut cuno"tin cu mediul de lucru Delphi! S,au prezentat cele trei componente princilale MDI! Ca un prim pas +n programarea -isual Delphi s, au realizat dou programe scurte e4emplific%nd funcionarea componentelor standard de tip etichet "i buton! n e4emplul al doilea s,a scos +n e-iden diferena dintre /un?ime "i Design?ime! Deoarece Delphi are la baz Ob'ect )ascal s,a fcut o scurt prezentare a limba'ului! 9;I9,urile Delphi sunt generate de program& inter-enia programatorului fiind foarte rar solicitat! )e scurt& s,a prezentat structura unui 9;I? Delphi! CHES+IO*AR 2! Ce este DelphiP $! Din ce se compune MDI DelphiP #! Care sunt componentele ferestrei princilaleP :! C%te seciuni are Ob'ect Inspector "i care este rolul acestoraP =! Cum se cheam fereastra de lucru +n DelphiP >! 9nde se gse"te 3ditorul de cod "i cum poate fi fcut -isibilP B! Care este diferena dintre Design?ime "i /un?imeP A! Ce se realizeaz +n urma proiectrii unei aplicaiiP D! Ce se e4ecut ca urmare a operaiilor de sal-areP 2G! Ce se e4ecut dup lansarea +n e4ecuie a programuluiP 22! Ce este un 9;I?P 2$! Ce este obligatoriu +n cadrul unui 9;I? DelphiP EMERCI8II Creai o aplicaie Delphi care s conin dou etichete "i dou butoane! .plicaia s fie intitulat <34erciiu de 7aborator nr 2@! 6utoanele s aib numele OQ& iar etichetelor s li se atribuie -aloare prin cod program! )entru una dintre etichete -aloarea s +i fie aribuit la codul butonului& iar la cea de,a doua -aloarea s +i fie atribuit +n procedura etichetei! Schimbai +n Obiectul Inspector dimensiunea "i tipul caracterelor pentru etichete "i butoane! Schimbai culoarea de fundal a etichetelor! n seciunea e-enimentelor realizai cuplarea butoanelor cu etichetele Sal-ai "i lansai +n e4ecuie aplicaia creat 2= 2>