Sunteți pe pagina 1din 9

CAPITOLUL 1 INTRODUCERE N DELPHI

Mediul Delphi a fost lansat aproape n acelai timp cu sistemul de operare Windows 95, fiind primul mediu de programare vizual ce genereaz prin compilare cod nativ real [28]. Cu ajutorul mediului Delphi se pot dezvolta aplicaii complexe ntr-un timp scurt indiferent de experiena pe care o avei n programare. Desigur c o experien minim n cel puin un limbaj de programare (Pascal, C, Basic) constituie un avantaj. n cele ce urmeaz ne vom concentra pe unele aspecte eseniale ce sunt necesare pentru realizarea rapid a unor aplicaii n domeniul mecatronicii. De aceea, unele aspecte nu se vor trata, cititorul fiind invitat s consulte bibliografia i help-ul mediului. Principalele obiective ale acestui capitol sunt: - o prezentare succint a mediului Delphi; - evidenierea principalelor etape n pregtirea unei aplicaii; - utilizarea unor componente n realizarea unei aplicaii simple; - aspecte de baz privind depanarea unei aplicaii. 1.1 Introducere Cea mai bun metod de a nva un produs software este utilizarea lui. Totui trecerea printr-o etap de studiu a unor elemente de baz este necesar. Lansarea n execuie a programului se face prin clic pe icoana mediului Delphi. Se deschide fereastra principal (fig.1.1) a mediului ce conine urmtoarele elemente principale [28]: - bara meniului principal; este o bar de meniu Windows standard. O putei parcurge pentru a v familiariza cu comenzile ce le conine (File, Edit, Search, View, Project etc.). - butoane rapide (speed buttons); reacioneaz la indicare i la apsare. De exemplu, pentru salvarea unui fiier se utilizeaz un buton sub forma unei dischete, pentru salvarea mai multor fiiere se utilizeaz un buton sub forma mai multor dischete. Dac poziionai mouse-ul pe un astfel de buton dup cteva momente va apare o caset ce conine numele butonului; caseta va dispare dup cteva secunde. - paleta de componente; conine pictograme reprezentnd componentele din biblioteca VCL (Visual Component Library). Pentru informaii despre 1

o anumit component, poziionai cursorul mouse-lui pe una din componente fr a executa clic. Componentele pot fi vizuale (de exemplu o linie de editare) sau nevizuale (de exemplu un timer). O component poate avea asociate diferite metode prin care se poate coordona comportarea componentei n momentul declanrii unui eveniment. Unele componente sunt invizibile pn cnd sunt apelate prin diferite metode (de exemplu ferestrele standard de dialog). - categorii de palete: Standard, Additional, Win32, System etc. Putei vizualiza componentele unei categorii de componente prin clic pe eticheta respectiv. - etichetele paginilor de proprieti i evenimente: (Properties, Events). O proprietate reprezint un atribut al unei componente, de exemplu intervalul de timp asociat unui timer sau fontul unei etichete de text. Un

Fig. 1.1 Mediul Delphi dup lansare 2

eveniment reprezint o aciune cum ar fi trecerea intervalului de timp asociat unui timer, apsarea unei taste, micarea mouse-lui etc. - inspectorul de obiecte (Object Inspector): afieaz toate proprietile i evenimentele uneia sau mai multor componente sau formulare (dac fereastra nu apare, utilizai tasta F11; s mai precizm c dac sunt situaii n care aciunile prezentate aici nu au rezultatul ateptat, atunci se recomand studierea help-ului deoarece este posibil s utilizai o variant diferit a mediului sau setri diferite). - fereastra formularului (Form): de obicei, un formular este o reprezentare vizual a ferestrei principale a programului. La lansarea n execuie (fig. 1.1), mediul Delphi creeaz un formular care iniial nu conine nici o component. Pe un formular se pot aeza att componente vizuale ct i componente nevizuale. De obicei, pentru aplicaiile relativ simple, se utilizeaz un singur formular n timp ce aplicaiile complexe pot conine zeci de formulare. Adugarea unui nou formular aplicaiei se poate face prin selectarea comenzii New Form din meniul File. - Module Explorer: afieaz clasele modulului curent, lista unitilor, variabilele, obiectele, metodele, etc. Pentru a avea acces la o metod sau o declaraie din fereastra de editare a codului, putei executa clic pe intrrile din fereastra Module Explorer. - fereastra pentru editarea codului (Code Editor): afieaz codul surs Pascal asociat unui formular al aplicaiei. Aa cum se va arta, Delphi insereaz automat n aceast fereastr majoritatea declaraiilor i procedurilor de tratare a evenimentelor, la care programatorul poate aduga instruciuni Pascal n vederea executrii unor aciuni specifice. 1.2 Primii pai n realizarea unei aplicaii Un proiect Delphi tipic este compus din mai multe tipuri de fiiere ce pot conine text, valori binare, imagini bitmap sau cod. Este bine ca pentru un proiect nou s se realizeze un director nou; nu se vor salva mai multe proiecte n acelai director. Pentru crearea unei aplicaii se parcurg etapele: - se realizeaz un nou director utiliznd Windows Explorer; - n mediul Delphi se selecteaz comanda File | New Application; - proiectul se poate salva prin comanda File | Save All. Se vor deschide dou casete de dialog una dup alta. Prima cere s introducei un nume de fiier pentru fiierul de cod surs principal al unitii iar a doua pentru salvarea fiierului proiect. Trebuie s dai i calea pentru directorul n 3

care vrei s salvai aplicaia. Nu e nevoie s specificai extensia de fiier, Delphi o adaug automat: .pas pentru fiier surs, .dpr pentru fiierul proiect, etc. Nu modificai extensiile fiierelor fr motiv. Not: salvai proiectele n Delphi/Projects/Numele_tu/Nume_proiect. n acest scop putei realiza directoarele necesare i direct n caseta de dialog ce se deschide cnd apelai comanda Save All (punei cursorul mouse-lui pe al treilea buton rapid din stnga sus i va apare informaia Create New Folder). ncercai i alte variante de salvare a fiierelor utiliznd i informaiile ce la ofer direct mediul sau Help-ul. 1.3 Alegerea unor proprieti Delphi atribuie automat numele Form1 formularului creat pentru proiectul ce urmeaz s l realizm. Dac dorim schimbarea acestui nume putem parcurge urmtoarele etape: - n fereastra Object Inspector selectm Form1 (n mod normal formularul este selectat, dar cine tie). O alt variant este executarea unui clic n interiorul ferestrei formularului Form1; - se execut clic pe eticheta Properties pentru a afia proprietile formularului (numai dac nu este deja selectat opiunea); - dac e cazul (proprietatea nu este nc selectat) se selecteaz proprietatea Caption; - se modific aceast proprietate (de exemplu se alege Primul program) i se observ modificarea titlului ferestrei; - se salveaz proiectul n modul n care s-a artat mai sus. 1.4 Execuia unei aplicaii Prima aplicaie n Delphi este gata. Pentru execuie se apas tasta F9 sau se selecteaz comanda Run din meniul Run (dac nu tii cum, putei s l ntrebai pe profesor sau, de ce nu?, pe vecinul dvs. Sau putei cerceta prin help-ul mediului!). O variant mai rapid este execuia unui clic pe butonul Run (triunghi verde cu vrful spre dreapta) din grupul butoanelor rapide. Ca urmare va apare pe ecran fereastra aplicaiei. Deocamdat aplicaia nu face ceva deosebit. Pentru a termina aplicaia se poate executa un clic pe butonul de nchidere al ferestrei (x), sau se apas tastele Alt+F4, sau se utilizeaz Run/ Program Reset. 4

Not: nu uitai s nchidei o aplicaie nainte de a reveni la program. Riscai ca la un moment dat mediul s se comporte urt cu voi (adic nu mai sunt accesibile toate comenzile). 1.5 Utilizarea componentelor Pentru a insera o component vizual procedai astfel (e un exemplu, putei alege alte componente!): clic pe eticheta Standard din paleta de componente, apoi selectai componenta Button cu eticheta Ok; apoi mutai cursorul mouse-ului pe formular i dai clic pentru a insera n fereastr butonul. Poziia nu conteaz, eventual o vom modifica mai trziu. n mod normal, butonul va fi nconjurat de marcaje ptrate, ceea ce semnific faptul c el este selectat (dac nu e aa, atunci dai un clic pe buton). n mod prestabilit Delphi l numete Button1. Pentru a-i da un nume mai sugestiv selectai proprietatea Name i l numii cum dorii, de exemplu Terminare. Vei vedea c att proprietatea Name ct i proprietatea Caption au valoarea Terminare. Poate dorii ca proprietatea Caption s aib valoare diferit, de exemplu End. O putei modifica. n program, atunci cnd se face referire la acest buton, el este denumit Terminare. n schimb la execuie, pe ecran va aprea End n buton. Cu alte cuvinte programatorul poate da un nume corespunztor butonului (de exemplu n limba romn) n timp ce la execuie se afieaz coninutul proprietii Caption (de exemplu n limba englez). Cu butonul selectat, executai clic pe eticheta Events din Object Inspector, apoi dai dublu clic n spaiul din dreapta evenimentului OnClick. n editorul de cod va fi afiat fiierul Pascal iar cursorul de editare este plasat ntre cuvintele cheie begin i end din corpul procedurii: TForm1.TerminareClick(Sender: TObject) al crui nume este propus de mediul Delphi. Putei introduce instruciunea: Close; { nu uitai ! Consultai Help-ul pentru instruciune} Tocmai ai realizat o procedur ce trateaz un eveniment. Procedura permite terminarea programului atunci cnd utilizatorul execut un clic pe butonul End. De asemenea ai nvat o alt cale de a termina un program. 5

Putei insera i o component nevizual (ea nu apare pe formular n timpul execuiei dar are un efect oarecare), de exemplu un timer din paleta de componente System. Alegei proprietatea Interval=100 (unitatea de msur este milisecunda-consultai i help-ul). Apoi selectai Events i dai dublu clic pe proprietatea OnTimer (e singura de altfel) i apoi introducei codul: Terminare.Left:=Random(400); Instruciunea de mai sus permite poziionarea aleatoare a butonului pe orizontal la fiecare interval de timp dat de proprietatea Timer1.Interval (vezi help-ul pentru funcia Random). V putei ncerca viteza de reacie ncercnd nchiderea programului prin clic pe buton! Pentru a poziiona butonul ntr-o poziie aleatoare att pe orizontal ct i pe vertical, introducei i instruciunea: Terminare.Top:=Random(400); Putei ncerca diferite strategii de a nchide programul executnd clic pe buton ns totui este dificil dac intervalul de timp Timer1.Interval este prea mic. Dac dorim s ne msurm viteza de reacie este util s putem modifica on-line intervalul de timp. Pentru aceasta punem pe formular o component ScrollBar din paleta de componente Standard(vezi help-ul). Cu componenta ScrollBar1 selectat (e nconjurat de mici ptrate de culoare neagr), selectm (dublu clic pe spaiul din dreapta evenimentului OnChange din Object Inspector) evenimentul OnChange (la schimbare) al componentei i n corpul blocului begin end al procedurii TForm1.ScrollBar1Change introducem codul: ScrollBar1.Max:=1000; {consultai helpul!!!} ScrollBar1.Min:=20; Timer1.Interval:=ScrollBar1.Position; Cu alte cuvinte putem alege modificarea intervalului de timp dup care poziia butonului se modific. Tocmai ai realizat o aplicaie fr prea mari pretenii pentru testarea vitezei de reacie a unei persoane. Nu ai scris dect 6 instruciuni! Dac avei imaginaie putei dezvolta aplicaia. De exemplu afiai exact timpul la care are loc modificarea poziiei butonului (consultai funciile time i now)!. 6

1.6 Depanarea unui program Uneori programatorul mai greete, greeala e omeneasc, nu? Mediul Delphi ns i ofer mijloacele prin care greelile pot fi depistate. Dac erorile de sintax sunt sesizate imediat la compilare, erorile de concepie pot fi uneori extrem de greu de depistat. Din acest motiv este util ca un mediu de programare s fie nzestrat cu ct mai multe faciliti pentru depanarea programelor. Comenzile de depanare din Delphi permit rularea pas cu pas a unui program i inspecia valorilor obiectelor i ale variabilelor. Utilizai comenzile de depanare pentru a studia aplicaiile ce urmeaz precum i pe cele din directorul Demos din Delphi. Pentru rularea pas cu pas a unei aplicaii, similar cu alte medii de programare, se pot utiliza tastele F7 i F8. Diferena ntre ele const n faptul c n timp ce prin utilizarea tastei F7 programul este executat instruciune cu instruciune, inclusiv instruciunile din interiorul procedurilor i funciilor, utilizarea tastei F8 conduce la evitarea depanrii instruciunilor din interiorul procedurilor i funciilor. Acest lucru poate fi util n situaiile n care considerm c parcurgerea pas cu pas a instruciunilor procedurilor sau funciilor nu e util pentru depanare (de exemplu, instruciunile au fost parcurse cel puin o dat i/sau avem motive s considerm c nu sunt erori de concepie n procedura sau funcia respectiv). Uneori avem motive s considerm c pn la un anumit punct programul funcioneaz corect. n acest caz putem poziiona cursorul de editare pe prima instruciune ncepnd cu care dorim s utilizm procedura de execuie pas cu pas i apoi utilizm tasta F4. La execuie programul se va opri la instruciunea respectiv apoi se vor putea utiliza tastele F7 respectiv F8. O alt situaie des ntlnit este stabilirea unuia sau a mai multor puncte de ntrerupere (breakpoint). Sunt cazuri n care, pe anumite ramuri de execuie, aplicaia nu funcioneaz corect. Prin urmare suntem interesai de a utiliza regimul pas cu pas doar cnd aplicaia parcurge aceste ramuri. La nceputul secvenei depanate se stabilete un breakpoint prin clic n marginea stng a ferestrei pentru editarea codului, n dreptul primei instruciuni din secven. Linia respectiv primete culoarea roie. Un nou clic va invalida breakpoint-ul respectiv. Dup ce programul a fost ntrerupt de breakpoint se poate utiliza n continuare regimul pas cu pas. O alt variant mai puin folosit (dar uneori mult mai util datorit facilitilor oferite vezi help-ul) de a introduce un breakpoint este utilizarea meniului Run/AddBreakpoint. 7

Situaia punctelor de ntrerupere se poate vizualiza prin View/DebugWindows/Breakpoints. Dup ce programul a fost ntrerupt, pentru a gsi eventualele erori de concepie, trebuie s vizualizm valorile variabilelor ce prezint interes. De obicei, n zona unde rulm pas cu pas programul, se afl i aceste variabile. Calea cea mai simpl de a le vizualiza este de a muta cursorul mouse-ului deasupra variabilei ce prezint interes. Dar sunt i situaii n care unele variabile ce prezint interes nu sunt prezente n zona n care rulm pas cu pas programul. n aceste cazuri se utilizeaz inspecia variabilelor prin fereastra Watch List. O variabil poate fi introdus i apoi urmrit n aceast fereastr prin comanda Run/ Add Watch. Se deschide o fereastr n care se poate edita numele variabilei precum i modul de afiare. Sunt situaii n care se dorete modificarea valorii unor variabile. De exemplu, datorit unor erori de concepie ce au fost ns depistate, sar putea s dorim s continum depanarea fr a relua procesul de compilare (s-ar putea s pierdem ceva timp pentru a ajunge din nou la punctul unde am gsit eroarea); acest lucru ar putea fi posibil numai dac am modifica valorile unor variabile. Pentru aceasta se folosete comanda Run/Evaluate/Modify. Se deschide o fereastr n care se editeaz variabila, se vizualizeaz i se modific. Toate aceste modaliti de a depana un program se vor putea utiliza n aplicaiile din capitolele urmtoare. S revenim la prima aplicaie scris i s inserm un breakpoint n dreptul instruciunii: Timer1.Interval:=ScrollBar1.Position; din procedura TForm1.ScrollBar1Change. Executm clic pe triunghiul verde. Ca urmare programul este compilat i dac nu apar erori este executat. Butonul End i va schimba poziia la fiecare 100 ms. Dac modificm poziia cursorului ScrollBarului atunci programul se va opri la breakpoint i automat se va deschide fereastra pentru editarea codului. Mutai cursorul mouse-lui peste proprietatea max din instruciunea: ScrollBar1.Max:=1000; Dup un timp scurt va apare o caset ce va indica valoarea proprietii max a componentei ScrollBar1 respectiv ScrollBar1.Max=1000. Similar 8

Timer1.Interval=100. Cu tasta F7 executm instruciunea curent. Ca urmare proprietatea Timer1.Interval devine egal cu ScrollBar1.Position. n seciunea de variabile introducem o variabil global i de tip ntreg definit prin: var Form1: TForm1; i:integer; {cod preexistent} {cod preexistent} {cod introdus} Timer1Timer ce

Aceast variabil o vom incrementa n procedura trateaz evenimentul OnTimer al timerului 1: i:=i+1; { instruciune scris imediat dup begin}

Inserm un breakpoint pe aceast instruciune (cellalt breakpoint l dezactivm). Executm programul i dup prima oprire n punctul de ntrerupere executm comanda Run/Add Watch... i introducem n caseta Expression numele variabilei ce dorim s o urmrim respectiv i. Putem alege i forma de afiare, dar aici vom pstra forma implicit indicat prin termenul default. Apoi acionm tasta F7 i observm n fereastra Watch List efectul respectiv incrementarea variabilei i. S mai ncercm o facilitate oferit de mediu: executm un clic dreapta pe bulina roie din stnga instruciunii i:=i+1; se deschide o fereastr numit Source Breakpoints Properties. n caseta numit Condition introducem condiia: i mod 10 = 0 adic impunem ca breakpoint-ul s fie activ numai dac i mod 10=0. Astfel de condiionri pot fi extrem de utile n unele situaii.

S-ar putea să vă placă și