UtilizareaMediuluiC++Builder

download UtilizareaMediuluiC++Builder

of 6

Transcript of UtilizareaMediuluiC++Builder

  • 7/25/2019 UtilizareaMediuluiC++Builder

    1/6

    Programare Orientat pe Obiecte

    - 1 -

    Laborator 8 Utilizarea Mediului C++ Builder

    Tema 8.1

    Creai un proiect n C++ Builder, l salvai i apoi l rulai.

    Consideraii teoretice 8.1

    C++ Builder este un mediu (o unealt) care ajut la dezvoltarea de aplicaiiproprii n limbajul C++putndu-se crea astfel uor aplicaii cu interfa pentru sistemul de operare WINDOWS. Pentru aputea crea o aplicaie windows trebuie creat prima dat un proiect. Proiectele sunt colecii de fiieresurs (cpp) care sunt compilate pe rnd i din care este realizat un singur fiier executabil. De aceean cadrul unui proiect trebuie sexiste o singur funcie main(sau WinMainpentru windows).

    Pentru crearea unei aplicaii pentru windows cu interfa n C++ Builder se intr n meniul File->New->Application. Se va crea automat o aplicaie care conine o fereastr (n c++ Builder senumete FORM) goal perfect funcional. Pentru a putea fi rulat aceast aplicaie trebuie n

    prealabil s fie salvat.

    Pentru salvarea ntregului proiect se folosete comanda File->Save Project As. Pentru un proiectnou se recomand prima dat salvarea ntregului proiect.La execuia acestei comenzi se cere primadat calea i un nume pentru un fiiercu extensia cpp (Unit1.cpp). Acest fiier conine codul scrisdeja pentru forma noastr.Se va specifica un nume pentru acest fiier i se va selecta exact caleaunde se dorete salvat proiectul (Pentru aceast tem recomand numele Prima.cpp). n folderulspecificat vor fi salvate 2 fiiere cu numele specificat, unul cu extensia .cpp i unulcu extensia.h. Dup salvarea formei se va cere specificarea numelui proiectului. Pentru salvarea proiectuluin folderul specificat vor fi create alte dou fiiere unul cu extensia .cpp i unulcu extensia .bpr.Pentru tema aceasta recomand numele PrimaAplicaie.bpr.

    ATENIE:Nu specificaipentru proiect acelai nume cu numelespecificat pentru form deoarecese va rescrie fiierul cu extensia .cpp de la forma fr nici un avertisment. Dup salvarea aplicaieifereastra ar trebui s fie asemntoare cu cea din figura 1.1.

    Figur 1.1 - Interfaa C++ Builder

    1

    2

    3

    4

    5

  • 7/25/2019 UtilizareaMediuluiC++Builder

    2/6

    Programare Orientat pe Obiecte

    - 2 -

    Cteva informaii despre ferestrele care au aprut n aplicaia c++ Buildercreat.

    Fereastra (1) este fereastra aplicaiei create. Pe aceast fereastr se va dezvolta aplicaia care sedorete realizat prin plasarea i configurarea diferitelor componente.

    Fereastra (2) este fereastra n care se gsete codul generat deja de C++ Builder pentru aplicaianoastr. n aceast fereastr noi vom continua scrierea de cod pentru dezvoltarea aplicaiei. n

    paralel cu noi C++ Builder va continua generarea de cod n aceste fiiere de aceea este recomandats se pstreze o logic i o structur ct mai bun n fiierele de cod. Orice forma din proiect vaavea 2 fiiere de cod ataate, n cazul aplicaiei noastre Prima.cpp i Prima.h. Pentru trecerea dela fiierul .cpp la fiierul .h se pot folosi butoanele din partea de jos-centru a acestei ferestre.ATENIE: Dac se nchide aceast fereastr se va nchide tot proiectul.

    Fereastra (3) numit i Object TreeView este fereastra n care se vor gsi toate componentele carele-am folosit n aplicaia noastr. Deocamdat n aplicaie avem o singur component formanumit automat de C++ Builder Form1.Toate componentele existente in C++ Builder i care potfi utilizate n aplicaia noastr sunt afiate n fereastra 5 din figura 1.1. Cteva din acestecomponente vor fi prezentate succint n acest laborator. Pentru informaii detaliate despre

    componente se poate consulta help-ul de la C++ Builder.

    Fereastra (4) din figura 1.1 numit i Object Inspector este una din cele mai importante ferestre depe ecran. Ea conine toate trsturile pentru componenta curent selectat. n acest moment naceast fereastr se gsesc trsturile (proprietile) formei curente (deoarece forma estecomponenta curent selectat momentan). Majoritatea proprietilor unei componente au numeintuitiv. Pe parcursul laboratorului vom detalia rolul unora dintre aceste proprieti. Anumite

    proprieti difer de la o component la alta.De exemplu proprietatea Captionpentru o form serefer la numele care va aprea pe form n partea de sus a acesteia.

    Fereastra (5) din figura 1.1 este fereastra care ine de C++ Builder. Este fereastra care conine

    comenzile de la C++Builder pentru aplicaia noastr. Aceast fereastr conine cteva butoanepentru comenzile standard cele mai uzuale. Aceast fereastr are 3 pri importante prezentate nfigura 1.2.

    Figur 1.2 Meniul C++ Builder

    n partea (1) din figura 1.2 sunt butoane (shortcut-uri) pentru comenzile standard cele mai utilizaten C++ Builder. Pe prima linie sunt butoane standard din windows iar butoanele de pe a doua-a linieau urmtoarele funcii:

    - Butonul permite afiarea unei ferestre n care se gsete o list cu toate fiierele cpp dincadrul proiectului putnd fi astfel deschis n fereastra de editare orice fiier din cadrul

    proiectului. Pe perioada dezvoltrii aplicaiei nu trebuie s fie deschise toate fiierele dinproiect.

    -

    Butonul va afia o fereastr cu toate fomele(ferestrele) existente n cadrul proiectului.Se poate deschide astfel orice formdin proiect. Pe perioada dezvoltrii aplicaiei nu trebuies fie deschise toate formele din proiect.

    3

    1 2

  • 7/25/2019 UtilizareaMediuluiC++Builder

    3/6

    Programare Orientat pe Obiecte

    - 3 -

    - Butonul -permite trecerea de la fereastra de cod la forma aferent codului sau invers.

    - Butonul permite inserarea unei noi forme n cadrul proiectului. La apsarea acestuibuton se va crea o form nou i se va introduce n cadrul proiectului fiierele cpp i haferente acestei forme. Atenie c tergerea unei forme din cadrul proiectului este maidificil. Prin simpla nchidere a formei sau a fiierului cpp corespunztor, forma respectivnu se terge din proiect. Pentru tergerea unei forme din proiect se selecteaz meniulProject->Remove from Project i se selecteaz din list forma care se dorete a fi tears.

    - Butonul permite rularea aplicaiei curente. Dac aplicaia nu a fost compilat nprealabil se va compila aplicaia i apoi se va rula.nainte de rularea unei aplicaii nu uitais salvai aplicaia respectiv folosind butonul de Savesau de Save All.

    - Butonul activ n timpul rulrii aplicaiei, permite oprirea aplicaie la linia curent icontinuarea execuiei ei pas cu pas (n limbaj de asamblare). Acest buton nu nchideaplicaia curent ci doar comut aplicaia n modul debug. Pentru oprirea aplicaie se potfolosi comenzile standard din windows care opresc o aplicaie (de exemplu butonul cusimbolul din dreapta sus de la fereastr) sau dac aceasta s-a blocat se poate folosi

    comanda din meniul de la c++ Builder Run->ProgramReset sau prescurtat CTRL+F2.Nu recomand nchiderea aplicaiei folosind comanda Ctrl+Alt+Del deoarece se va nchide iC++ Builder fr salvarea aplicaiei.

    n partea (2) din figura 1.2 se gsete Toolbar-ul cu toate componentele din C++ Builder care pot fifolosite pentru dezvoltarea aplicaiei. De exemplu pentru a scrie un text pe ecran se poate folosicomponenta Label din tabul Standard, pentru a adugaun butonpe forma noastrse poate folosicomponenta Button din tabul Standard. Dac sest puin cu mouse-ul deasupra unei componentese va afia numele acesteia. De asemenea vom detalia mai jos o serie dintre aceste componente.

    n partea (3) din figura 1.2 este meniul cu toate comenzile din c++ Builder. Majoritatea sunt

    meniuri standard windows, nu vom discuta aici despre toate doar cteva considerate maiimportante.

    Meniul View->Project manager comand care permite vizualizarea tuturor fiierelor incluse nproiectul curent. n urma acestei comenzi va aprea o fereastr de forma celei din figura 1.3.

    Figur 1.3 Project Manager

    Fiierele coninute ntr-un proiect sunt urmtoarele:

    - Prima.cpp conine codul surs pentru fereastra (Forma) din aplicaie. Fiierul h conineclasa nou definit pentru fereastra noastr.

  • 7/25/2019 UtilizareaMediuluiC++Builder

    4/6

    Programare Orientat pe Obiecte

    - 4 -

    - Fiierul PrimaAplicaie.cpp conine funcia WinMain pentru aplicaia curent. Acestfiier este generat i actualizat automat de C++ Builder de acea nu se recomandmodificarea acestui fiier dect n caz de strict necesitate.

    Nu uitai s rulai aplicaia creat i vedei ce faciliti ofer deja forma existent.

    Indicaii 8.1

    Atenie la salvarea aplicaiei, la numele fiierului .CPP i numele proiectului.Pentru numeleproiectului nu specificai acelai nume ca i pentru numele formei. Se va rescrie fiierulformei fr s ne atenioneze c se pierde definitiv acel fiier.

    Pentru oprirea unei aplicaii n cazul n care aceasta s-a blocat se poate folosi comanda dinmeniul Run->Program Reset sau shortcut-ul CTRL+F2.

    Tema 8.2

    Analizai codul scris deja de C++ Builder din toate fiierele din cadrul proiectului.

    Consideraii teoretice 8.2

    n fiierul Prima.h se gsete definit o clas care va conine forma din aplicaia noastr. ClasaTForm1 este clasa noastr i motenete public toate proprietile clasei TForm care este oclasdin C++ Builder. n interiorul clasei avem definit doar constructorul clasei. De obicei acestfiier este completat automat de C++ Builder pe parcursul utilizrii de noi componente. Dac sedorete introducerea de noi membrii n clas se recomand scrierea acestora n zonele recomandate

    prin comentariul User declaration.

    n fiierul Prima.cpp se gsete codul clasei respective. Deocamdat avem implementatconstructorul pentru clasa noastr carenu face altceva dect apeleaz constructorul cu un parametrudin clasa de baz necesar pentru iniializarea formei.

    Deschidei i fiierul PrimaAplicaie.cpp (vezi tema anterioar). Acesta conine implementareafunciei WinMain n contextul celor discutate la Tema1.1. Codul aferent conine cele trei etapedin cadrul unei aplicaii windows partea de iniializare, partea de creare interfa i partea deateptare/executare comenzi.

    Structura try/catch este obligatorie a se folosi n orice aplicaiewindows. Ideea este c i spunemsistemului de operare s ncerce s execute instruciunile din blocul try. Dac pe parcursulexecuieiaplicaieiuna dintre instruciuni creeaz probleme i se blocheaz aplicaia atunci sistemulde operare va opri execuia instruciunilor din blocul try i va continua aplicaia prin executareainstruciunilor din blocul catch. Aceast structur try/catch este obligatorie n toate aplicaiilewindows de aceea pentru a rezolva simplu problema C++ Builder a inclus din start toat aplicaianoastr ntr-o astfel de structur. Tratarea este standard, indiferent de tipul problemei aprute senchide aplicaia i se afieazunui mesaj cu eroarea aprut. Dac se dorete, se poate trata i local

    excepiile care apar pentru a nu duce la nchiderea brusc a aplicaiei prin folosirea de blocuritry/catch local acolo unde se dorete.

    Tema 8.3

    Modificai proprietile formei astfel nct aceast i aib textul din partea de sus Prima Fereastriar numele variabilei folosite n aplicaie s fie fMain.

    Consideraii teoretice8.3

    n Object Inspector se gsesc caracteristicile componentei curent selectate.

    Caracteristica Caption se refer la textul afiat de component, text care nu este editabil peparcursul rulrii aplicaiei ci doar n partea de design(dezvoltare).

  • 7/25/2019 UtilizareaMediuluiC++Builder

    5/6

    Programare Orientat pe Obiecte

    - 5 -

    Caracteristica Name reprezint numele cu care vom folosi variabila respectiv n cadrul aplicaieiatunci cnd scriem cod. n momentul n care modificm aceast caracteristic C++ Builder vamodifica automat numele n toate locaiile n care l-a scris el. Dac am scris i noi cod n care amfolosit numele vechi al variabilei n aceste locuri numele nu va fi modificat automat. De aceea serecomand schimbarea numelui unei componente (variabile) imediat dup ce am inseratcomponenta (variabila) n aplicaia noastr. Pentru o mai bun nelegere a variabilelor serecomand ca atunci cnd se redenumete variabila s se specifice la nceputul numelui acesteia

    cteva caractere care s sugereze tipul componentei.

    Tema 8.4

    S se introduc pe form un buton pe care s scrie textul Exit, s aib numele btnExit i la clickpe acest buton s se nchid aplicaia.

    Consideraii teoretice 8.4

    Pentru a insera un buton se folosete toolbar-ul de componente n tabul Standard. Se face clic pecomponenta dorit din toolbar i apoi se face clic pe fereastr n locul unde se dorete inserat

    butonul. Acesta poate fi modificat i repoziionat prin drag-and-drop.

    Pentru ataarea unui eveniment de clic pe buton se merge n Object inspector i se selecteaztabul Events (atenie s fie selectat butonulpentru c altfelselectai evenimentele pentru Form).Acolo va aprea o list cu toate evenimentele care pot fi activate pentru componenta curentselectat. Pe noi ne intereseaz evenimentul OnClick. Se va face dublu-click n dreptul acestuieveniment n locaia goal. Automat C++ Builder va insera o metod pe care o va ataa de acesteveniment. Deci de cte ori noi vom facem click pe acel buton se va apela automat codul acesteimetode (funcii). Urmeaz ca n aceast metod s scriem funcia standard din c++ care ne nchide oaplicaie (care este funcia?). O alt modalitatea de a crea (sau ajunge) la funcia creat pentruevenimentul onClick pe un buton este s facem dublu-click pe butonul respectiv. Rulai aplicaia svedei dac i funcioneaz.

    Indicaii 8.4 Pentru modificarea proprietilor butonului a se vedea tema 1.4

    Funcia pentru nchiderea aplicaiei n c++ este exit(0).

    Tema 8.5

    Introducei pe fereastr o component de tip Label n care scriei textul semigrupa i variabilaataat va avea numele lText i nc un buton pe care scriei textul Unu i numele variabilei vafi btnUnu. Pentru buton evenimentul de click pe acesta va produce schimbarea textului afiat decomponenta Label cu textul afiat de buton.

    Consideraii teoretice 8.5

    Pentru a accesa n cod o anumit proprietate a unei componente trebuie s amintim c acestecomponente nu sunt altceva dect obiecte de tipuri mai complexe, deci se acceseaz ca i unmembru dintr-o clas(structur). Dac ne uitm n fiierul Prima.cpp vom vedea c toate obiectelecare le-am inserat pn acum sunt definite de tip pointer, deci membri acestora se vor accesacorespunztor.

    De exemplu pentru a modifica textul afiat de componenta noastr lText n timpul execuieiaplicaiei se poate scrie codul:

    f Mai n- >l Text - >Capt i on = Modi f i cat ;

    n cadrul unei metode specificarea obiectului de tipul clasei din care face parte metoda (fMain) este

    opional acesta fiind specificat automat de compilator prin cuvntul cheie this.

  • 7/25/2019 UtilizareaMediuluiC++Builder

    6/6

    Programare Orientat pe Obiecte

    - 6 -

    Tema 8.6

    Introducei pe fereastr o component de tip buton cu numele btnDoi i textul afiat s fie DOIi o component de tip Edit cu numele eText n care utilizatorul s poat scrie orice text dorete ntimpul rulrii aplicaie. La apsarea butonului Doi textul scris n componenta eText s fiecopiat n componenta lText.

    Consideraii teoretice 8.6

    La final interfaa aplicaiei ar fi defelul urmtor, cuprinznd i fereastra Object TreeView n care sevd definite toate numele de variabile care sunt de tip componente.

    Figur 1.4 Aplicaia realizat