You are on page 1of 120

LAZARUS FREE PASCAL Dveloppement rapide Version libre allge

Programmation

ISBN 9782953125160 ditions LIBERLOG diteur n 978-2-9531251 13 Rue !n"u# $RIGEN 35000 RENNES %roits d&!uteur RENNES 2009 %'()t L'"!* RENNES 2010

Sommaire
A)A lire...................................................................................... !)!iograp"ie..............................................................................# C)LAZARUS FREE PASCAL..................................................$ D)Programmer %a&ilement.......................................................'$ E)(a premi)re appli&ation......................................................*+ F)L,-b.et..................................................................................// 0)Crer son savoir1%aire...........................................................23 4)De PASCAL vers FREE PASCAL....................................'3/ 5)Cration d6 livre..................................................................''7 8)C"apitres.............................................................................''* 9)0lossaire............................................................................''/

A)A LIRE

Des mots :6e vo6s ne &omprene; pas< ave& le6r premi)re lettre en ma.6s&6le< pe6vent =tre tro6vs dans le glossaire > la %in d6 livre. Les e?emples pe6vent se tl&"arger s6r le site @@@.liberlog.%r. Les mots en gras indi:6ent des &"apitres. Les mots en ma.6s&6les indi:6ent des gro6pements< des langages< des o6tils< des entits< des mar:6es. Les mots entre g6illemets indi:6ent des mots de LAZARUS< des mots > &"er&"er s6r le Aeb< o6 des mots de votre environnement. Les mots entre &ro&"ets indi:6ent des mots > rempla&er.
A)OBJECTIFS DU LIVRE

L,ob.e&ti% d6 livre est d,apprendre %a&ilement LAZARUS a%in de &rer rapidement 6n Logi&iel. -n met en avant la &ration de Composants< tape indispensable dans l,a6tomatisation et l,optimisation. -n donne la dmar&"e po6r &rer tr)s rapidement 6n Logi&iel. Cette dmar&"e &onsiste > viter les &opis1&olls. 8e mets en avant 6ne no6velle mt"ode dans &e livre. Le Dveloppement Br)s Rapide d,Appli&ations est l,abo6tissement de to6t savoir1%aire a6tomatisant la &ration de Logi&iel. -n prpare la &ration po6r sa6ter 6ne tape C La &ration d6 Logi&iel > partir de l,analDse. C,est l,analDse :6i &re le Logi&iel grE&e > votre mote6r DBRA.

A lire 1 -b.e&ti%s d6 livre

B)LICENCE

Le livre &omplet a t &rit par (att"ie6 05R-UF et 8ean1(i&"el !ERGA!-BB- po6r le langage PASCAL. 5l est so6s de6? li&en&es C CREAB5VE C-((-G !H SA et CREAB5VE C-((-G !H GC1 GD. Vo6s dispose; i&i de :6el:6es &"apitres libres. Vo6s po6ve; 6tiliser &e livre en &itant l,a6te6r.

C)DU MME AUTEUR

L,ast6&ie6? L5GUF d,apr)s @@@.aides1in%ormati:6e.&om LAZARUS FREE PASCAL I Dveloppement rapide Comment &rire des "istoires d,apr)s @@@.&omment1e&rire.%r Gos Go6velles Gos Vies Po)mes et SJet&"s I De 733* > 7332

Visibles s6r 0--0LE !--9S. Disponibles s6r @@@.&omment1e&rire.%r< @@@.la;ar6s1&omponents.org. Site d,in%ormations C @@@.%ran&e1analDse.&om.
D)DU MME DITEUR

Alors vo6s vo6le; to6t savoir s6r l,&onomie K LDndon Laro6&"e Disponible s6r @@@.%ran&e1analDse.&om.

A lire 1 D6 m=me dite6r

B)BIOGRAPHIE
(att"ie6 05R-UF aime l,&rit6re< &ette re&"er&"e de la vrit en 6tilisant des moments de r%le?ion. 5l s,intresse a6 Dveloppement Rapide d,Appli&ations a%in de tro6ver de meille6res te&"ni:6es de programmation. Sa6ter 6ne tape la &ration d6 Logi&iel est possible grE&e > l,a6tomatisation< maLtre mot de l,in%ormati:6e dans l,entreprise. LAZARUS n,est don& :6,6ne tape dans la ralisation d,6n savoir1%aire o6 Frame@orJ. 5l %a6dra ens6ite a6tomatiser > partir d,a6tres %rame@orJs a%in de mie6? %aire &onnaLtre le sien. Re&"er&"e; le partage po6r vo6s enri&"ir et enri&"ir les a6tres.

!iograp"ie 1 !iograp"ie

C)LAZARUS FREE PASCAL


CREAB5VE C-((-G !H SA

A)POURQUOI CHOISIR

LAZARUS ?

Si vo6s vo6le; apprendre la programmation d,inter%a&es "omme1 ma&"ine LAZARUS est %ait po6r vo6s. LAZARUS &,est 6n ED5< 6n Environnement de Dveloppement 5ntgr< disponible s6r 6n ma?im6m de ma&"ines< &ompatible DELP45. DELP45 est bea6&o6p enseign dans les &oles %ranMaises. Go6s so6"aitons le m=me destin > LAZARUS :6i ne poss)de pas de li&en&e paDante. LAZARUS &,est 6ne 6tilisation des librairies Libres les pl6s %iables ave& 6ne inter%a&e %a&ile > 6tiliser. LAZARUS est 6n Logi&iel Libre. Vo6s po6ve; adapter des Composants DELP45 po6r :6e vos Logi&iels deviennent m6ltiplate1%orme. 5ls seront don& 6tilisables s6r bea6&o6p de ma&"ines. DELP45 a t &r en '++/. Le pro.et LAZARUS a &ommen& en '+++. 5l est a&t6ellement pr%rable d,6tiliser LAZARUS pl6tNt :6e 9HL5F< 6n DELP45 so6s L5GUF &r en 733'. En e%%et 9HL5F a t abandonn d)s sa troisi)me version. Un logi&iel ClientOServe6r &,est en :6el:6e sorte 6n logi&iel :6i n,a pas besoin de navigate6r @eb po6r %on&tionner. Si vo6s vo6le; &rer &e genre de Logi&iel< vo6s po6ve; &ompter s6r des librairies de &omposants vis6els< permettant de raliser vos inter%a&es e?&6tables< s6r vos plates1%ormes pr%res. Le m6ltiplate1%orme &onsiste > di%%6ser largement son Logi&iel s6r 6n ma?im6m de ma&"ines. -n 6tilise LAZARUS po6r &rer des Logi&iels ClientOServe6r m6ltiplate1%orme.

LAZARUS FREE PASCAL 1 Po6r:6oi &"oisir LAZARUS K

Si vo6s vo6le; &rer votre .e6 m6ltiplate1%orme< LAZARUS poss)de des librairies permettant de &rer des .e6? s6r 7 Dimensions o6 s6r * Dimensions. -n 6tilise LAZARUS po6r &rer des Logi&iels grap"i:6es m6ltiplate1%orme. 5l e?iste des librairies permettant de lire des %ormats de %i&"iers 7D o6 *D< Libres o6 propritaires. Vo6s po6ve; rester de long6es "e6res devant votre ordinate6r< > programmer 6n logi&iel rpondant > 6ne demande sp&i%i:6e. Ge vo6s en %aites pas< il e?iste des &rans n,mettant pas de l6mi)re. 5ls permettent de ne pas %atig6er ses De6?< a%in de &rer vos logi&iels en to6te srnit.
B)ARCHITECTURES

FREE PASCAL

Ave& LAZARUS< en 73'3< vo6s po6ve; &rer des e?&6tables %on&tionnant so6s A5GD-AS< so6s !SD< so6s (AC -S F< so6s L5GUF< so6s DE!5AG< so6s UG5F< so6s -S F< so6s A5G CE< so6s 5 P4-GE< so6s 0P4-GE< so6s S(ARBP4-GE. Po6r &ertaines plates1 %ormes il est n&essaire de parti&iper a6 pro.et LAZARUS. Go6s 6tilisons a&t6ellement 6ne ar&"ite&t6re *7 bits voire # bits. -n pe6t s&"matiser &ela &omme *7 o6 # voies d,a6toro6tes. Ainsi 6ne adresse *7 bits pe6t adresser .6s:6,> 7*7 entiers de *7 bits. Une adresse # bits pe6t adresser .6s:6,> 7 # entiers de # bits. Une adresse # bits ne %on&tionne pas s6r 6ne adresse *7 bits. Par &ontre 6ne adresse *7 bits pe6t %on&tionner s6r 6ne ar&"ite&t6re # bits< dans la limite de ses possibilits. LAZARUS %on&tionne s6r les ar&"ite&t6res *7 et # bits. Cependant vo6s deve; vri%ier :6e les &omposants &omplmentaires %on&tionnent en # bits. En e%%et< en 73''< &,est to6.o6rs l,ar&"ite&t6re *7 bits :6i est prioritaire. 2 LAZARUS FREE PASCAL 1 Ar&"ite&t6res FREE PASCAL

C)APPLICATIONS

LIBRES LAZARUS

Une Appli&ation -pen So6r&e n,est :6e partage. Une Appli&ation Libre pe6t s,6tiliser< s,t6dier< se distrib6er et se modi%ier grE&e a6 partage. 5l e?iste des appli&ations m6ltiplate1%orme %aites ave& LAZARUS. LAZARUS est &"oisi po6r le m6ltiplate1%orme. S9HC4ARB et V5RBUAL (--G sont des appli&ations s&ienti%i:6es en *D et Libres. Di%%rents logi&iels de gestion vo6s permettent de grer votre &a%< entreprise o6 resta6rant. PEA Z5P est 6n &ompresse6rOd&ompresse6r Libre &on&6rrent de $ Z5P. 5l e?iste des appli&ations Libres po6r les donnes po6r PARAD-F o6 SPL5BE. -RB4-GEB est 6n Logi&iel d6&ati% Libre. Des pro%esse6rs ont &"oisi LAZARUS. 5l e?iste a6ssi des 6tilitaires Libres po6r la vido o6 le son< d,a6tres pro.ets s&ienti%i:6es. Des sites Aeb vo6s permettent de tl&"arger po6r parti&iper > &es Logi&iels Libres. Vo6s ave; 6ne liste de logi&iels 6tilisant LAZARUS ave& &e lien C "ttpCOO@iJi.la;ar6s.%reepas&al.orgOPro.e&tsQ6singQLa;ar6sO%r
D)DU

PASCAL ORIENT OBJET

LAZARUS FREE PASCAL 1 D6 PASCAL orient -b.et

LAZARUS est bas s6r 6n langage nomm FREE PASCAL. FREE PASCAL est a6ssi 6n Compilate6r PASCAL orient -b.et. Le langage FREE PASCAL poss)de 6ne grammaire et des instr6&tions PASCAL< bases s6r l,algorit"mi:6e. Le PASCAL est don& enseign po6r &ette raison parti&6li)re. La programmation par -b.ets est la programmation la pl6s pro&"e de l,"6main. Cette programmation regro6pe des parties d6 programme< &res dans des -b.ets. -n pe6t ainsi %a&ilement reprsenter son programme en entits. Ces entits ont 6n &omportement< 6ne "irar&"ie< des vale6rs. Le Pas&al -b.et poss)de des -b.ets po6vant =tre enregistrs &omme Composants. Les Composants PASCAL amliorent le PolDmorp"isme d6 PASCAL orient -b.et< &ette &apa&it des -b.ets > a&&epter pl6sie6rs %ormes. Le langage PASCAL -b.et est l,6n des pl6s simple d6 mar&". 5l permet de tro6ver %a&ilement les erre6rs. Le Compilate6r FREE PASCAL permet de &rer des e?&6tables indpendants de to6te librairie &omplmentaire. LAZARUS a &ertes t &r en '+++. (ais il ne %ait :6e reprendre les instr6&tions de PASCAL -b.et e?istantes< grE&e a6 Compilate6r m6ltiplate1%orme FREE PASCAL< point de dpart de dpart de LAZARUS. Le Compilate6r FREE PASCAL vol6e maintenant grE&e > LAZARUS. Comme to6t o6til -b.et RAD< LAZARUS est a&&essible. 5l pe6t &ependant vo6s emmener< petit > petit< vers les Composants. Vo6s apprene; alors rellement l,-b.et< permettant d,amliorer &e :6e vo6s 6tilise;. Go6s vo6s apprenons > &onnaLtre les instr6&tions permettant de raliser votre Logi&iel< adapt > vos besoins. Po6r aller pl6s loin< &onnaLtre '3 LAZARUS FREE PASCAL 1 D6 PASCAL orient -b.et

l,-b.et et les di%%rentes ar&"ite&t6res logi&ielles permet d,amliorer LAZARUS.


E)LA COMMUNAUT

LAZARUS dispose d,6ne &omm6na6t a&tive. Elle a.o6te a6 %6r et > mes6re de no6velles possibilits. Des &omm6na6ts LAZARUS s,o6vrent rg6li)rement dans d,a6tres paDs. 5l e?iste 6n @iJi LAZARUS< ainsi :6,6n espa&e de do&6mentation %ranMais. Un espa&e de trad6&tion %a&ilite la &ompr"ension de LAZARUS. Vo6s po6ve; parti&iper > &es espa&es< o6 donner vos avis.
F)LAZARUS EST PARTAG

Les sites de @@@.so6r&e%orge.net et &ode.google.&om ne di%%6sent :6e des Logi&iels -pen So6r&e. S-URCEF-R0E et 0--0LE C-DE permettent en e%%et de partager vos So6r&es de Logi&iel. Go6s parlons de &et aspe&t dans le &"apitre s6r la Collaboration. Ave& les sites @eb de So6r&es partages< d,a6tres dveloppe6rs pe6vent amliorer votre Logi&iel< &ar les So6r&es sont la re&ette de votre Logi&iel. LAZARUS est don& -pen So6r&e. Vo6s po6ve; le modi%ier. Ce site permet a6ssi de disposer d,6ne mise > .o6r des So6r&es< %i&"ier par %i&"ier< selon les modi%i&ations. Ces %i&"iers So6r&es ne sont po6r &ertains pas tests.
G)LES VERSIONS DE

LAZARUS

LAZARUS est 6n Logi&iel Libre. A6trement dit vo6s ave; a&&)s a6? LAZARUS FREE PASCAL 1 Les versions de LAZARUS ''

So6r&es< et vo6s ave; le droit de les modi%ier librement. Vo6s po6ve; don& intgrer le pro.et LAZARUS. -n a intr=t > mettre > .o6r LAZARUS< a%in de disposer des derni)res amliorations Libres. Les dveloppe6rs LAZARUS g)rent des n6mros de version. LAZARUS vol6e &ontin6ellement. Rvite; &ertaines versions. Le Versioning LAZARUS se prsente ave& des &"i%%res< disposs de &ette %aMon C A.!.CC1D Le premier nombre nomm SAS prsente 6ne version ma.e6re de LAZARUS. Par e?emple la version '.3.3313 de LAZARUS permettra de trad6ire enti)rement to6t Composant DELP45 # vers LAZARUS. Pl6s &e &"i%%re o6 nombre est grand et r&ent< pl6s &ette version est re&ommande. Le de6?i)me &"i%%re o6 nombre prsente 6ne version mine6re de LAZARUS. Pl6s &e nombre o6 &"i%%re est grand< pl6s &ette version est re&ommande. Le troisi)me nombre prsente la mat6rit de la version mine6re. Si le nombre est pair< la version est stable et 6tilisable< &ar elle a t teste. Si le nombre est impair< il s,agit d,6ne version non teste< &re 6n .o6r donn. Les versions > troisi)me nombre impair ne ve6lent rien dire sans le6r .o6r de &ration. Les versions > troisi)me nombre impair permettent de montrer 6n aperM6 de la pro&"aine version paire. Ces versions ne sont .amais re&ommandes< e?&eptes :6el:6es .o6rs avant la %inition. Ave& on a la possibilit de &rer des Composants de LAZARUS ave& 6ne grammaire FREE PASCAL r&ente. Le :6atri)me &"i%%re o6 nombre montre 6ne &ration d,6ne version '7 LAZARUS FREE PASCAL 1 Les versions de LAZARUS

stable de LAZARUS< > partir d,6ne base pl6s r&ente. En %ait le :6atri)me &"i%%re ne vo6s apporte :6e la rparation de !og6es o6 erre6rs tro6ves< &e :6i est d.> intressant< rien de no6vea6 sinon. Si le :6atri)me &"i%%re est impair la version de LAZARUS n,a pas t teste. Elle a &ependant de grandes &"an&es d,=tre s6%%isamment stable. Vo6s ave; la possibilit de tl&"arger 6n Ssnaps"ot LAZARUSS A5GD-AS de la derni)re version dbog6e de LAZARUS. Po6r les a6tres plates1%ormes< les So6r&es d6 Ssnaps"otS permettent de &rer 6n no6vea6 LAZARUS.
H)TLCHARGER

LAZARUS

Vo6s po6ve; don& maintenant tl&"arger la derni)re version de LAZARUS po6r votre environnement< s6r la page de tl&"argement d6 pro.et LAZARUS > "ttpCOOso6r&e%orge.netOpro.e&tsOla;ar6s. Vo6s po6ve; par la m=me o&&asion voir l,avan&ement d6 pro.et > "ttpCOO@@@.la;ar6s.%reepas&al.org< dans la page SRoadmapS. Si vo6s so6"aite; &onnaLtre l,tat de la pro&"aine version alle; > "ttpCOOb6gs.%reepas&al.org. 5l est possible de tl&"arger sa version LAZARUS d6 .o6r s6r "ttpCOO@@@."6.%reepas&al.orgOla;ar6s. -n tl&"arge 6n Snaps"ot LAZARUS< &,est > dire 6ne v6e s6r les modi%i&ations d6 .o6r apportes > LAZARUS. Un Ssnaps"otS sert > travailler s6r des Composants LAZARUS en &o6rs de p6bli&ation. 5l &ompile rarement 6n e?&6table. Si on so6"aite parti&iper > LAZARUS il est possible de tl&"arger dire&tement les So6r&es SVG s6r le site Aeb de so6r&e%orge > "ttpCOOso6r&e%orge.netOpro.e&tsOla;ar6s< dans la partie SDevelopS.

LAZARUS FREE PASCAL 1 Bl&"arger LAZARUS

'*

1)Snapshot sur LINU


Po6r &onstr6ire ave& les so6r&es d,6n Ssnaps"otS LAZARUS< rempla&e; les so6r&es de LAZARUS par &elles d6 Ssnaps"otS< p6is dmarre; LAZARUS &omme &e&i C s6 root T startla;ar6s Dans S-ptionsS p6is SCon%ig6rer !6ild LAZARUSS SConstr6ire to6tS.

Options de construction de LAZARUS Alle; dans le men6 S-6tilsS p6is SConstr6ire LAZARUSS. Si vo6s vo6le; travailler s6r les Composants LAZARUS< le mie6? est de &"anger le propritaire d6 rpertoire LAZARUS vers votre &ompte. Se6l votre &ompte pe6t alors &onstr6ire le noDa6 LAZARUS. LAZARUS s,installe dans SO6srOlibOla;ar6sS. Si vo6s so6"aite; travailler so6vent s6r les Composants< il vo6s est possible d,a&&der > &e rpertoire< en devenant Propritaire d6 rpertoire< grE&e a6 terminal L5GUF. Utilise; &ette &ommande en mode Administrate6r C &"o@n 1R monQlogin.root O6srOlibOla;ar6s

I)INSTALLER

LAZARUS SOUS WINDOWS

LAZARUS s,installe en vo6s demandant de relier les %i&"iers PASCAL o6 LAZARUS > votre Environnement de Dveloppement 5ntgr. ' LAZARUS FREE PASCAL 1 5nstaller LAZARUS so6s A5GD-AS

Gote; le rpertoire d,installation de LAZARUS.


J)INSTALLER

LAZARUS SOUS LINUX

L5GUF &entralise ses pa:6ets de logi&iels. Ainsi 6n logi&iel est tr)s lger &ar il 6tilise des librairies dans d,a6tres pa:6ets. Sa&"e; :6e LAZARUS 6tilise des librairies C. Vo6s deve; disposer des librairies disponibles s6r L5GUF par d%a6t. Une version moins r&ente est disponible dans votre gestionnaire de pa:6ets. Po6r disposer de la version pl6s r&ente a.o6te; le serve6r de tests > votre gestionnaire de pa:6ets. Avant vri%ie; si la version de @@@.so6r&e%orge.net est pl6s r&ente :6e &elle de votre gestionnaire. Une version de LAZARUS est dans le gestionnaire de pa:6ets. 5l s6%%it d,installer le pa:6et SLAZARUSS grap"i:6ement o6 en tapant &ette &ommande s6r DE!5AG en mode SrootS UAdministrate6r) C apt1get install la;ar6s Sinon installe; l,ensemble des pa:6ets FREE PASCAL C-(P5LER db6tant par S%p&S et S%p1S ainsi :6e les pa:6ets LAZARUS db6tant par Sla;ar6sS. FREE PASCAL C-(P5LER pe6t =tre trop r&ent. Faites attention > la version re&onn6e par LAZARUS.
K)CONFIGURER

LAZARUS

LAZARUS se re&ompile pres:6e enti)rement par d%a6t. Alle; dans le men6 S-6tilsS p6is SCon%ig6rer !6ild LAZARUSS. C"oisisse; SConstr6ire l,ED5 et les pa:6etsS. Ainsi vo6s re&onstr6ise; l,e?&6table de LAZARUS en permettant d,installer de no6vea6? LAZARUS FREE PASCAL 1 Con%ig6rer LAZARUS '/

Composants.

"Construire l'EDI avec les paquets" SConstr6ire la LCLS< SGettoDer et &onstr6ire to6tS o6 SConstr6ire to6tS sont > &"oisir lors:6e des So6r&es LAZARUS en version d,essai ont t installes. Le nettoDage &onsiste > s6pprimer les 6nits &ompiles. Pense; > modi%ier le rpertoire de LAZARUS dans SCon%ig6rationS p6is S-ptionsS.

'#

LAZARUS FREE PASCAL 1 Con%ig6rer LAZARUS

!)PROGRA""ER FACILE"EN#
CREAB5VE C-((-G !H SA

A)CRER UN LOGICIEL

Apr)s avoir &r 6n SGo6vea6S pro.et SAppli&ationS alle; dans l,SRdite6r de So6r&eS. Vo6s voDe; 6ne So6r&e &re a6tomati:6ement ainsi :6,6ne %en=tre :6i ne ragit pas &omme 6ne %en=tre "abit6elle. C,est votre base de travail permettant de &rer 6n programme %en=tr.

Nouvelle "Application" LAZARUS Vo6s voDe; a6ssi 6ne %en=tre< o6 6n %orm6laire< ave& 6ne grille en pointills permettant de travailler grap"i:6ement. Alle; dans le men6 SPro.etS p6is dans S5nspe&te6r de Pro.etS. Vo6s voDe; les %i&"iers :6i ont t &rs a6tomati:6ement. Le %i&"ier &ommenMant par SUnit'S &,est le %orm6laire de votre no6vea6 pro.et en So6r&e PASCAL -b.et. Vo6s voDe; a6ssi 6n %i&"ier S.lprS. Cette e?tension de %i&"ier signi%ie Programmer %a&ilement 1 Crer 6n logi&iel '$

LAZARUS Pro.e&t Reso6r&es< o6 Resso6r&es d,6n Pro.et LAZARUS. Ce %i&"ier< liant le pro.et vers les resso6r&es LAZARUS< permet de &ompiler et d,e?&6ter votre %orm6laire. Po6r &ompiler et e?&6ter &e pro.et vide< &li:6e; s6r dans la barre d,o6tils LAZARUS. Vo6s voDe; la m=me %en=tre vide sans les pointills de prsentation. C,est votre %orm6laire :6i est e?&6t. Vo6s po6ve; le dpla&er< l,agrandir< le dimin6er et le %ermer< &ontrairement a6 %orm6laire pr&dent. 5l s,agit bien d,6n programme e?&6t. Po6r e?&6ter &e programme ave& &e %orm6laire le Compilate6r FREE PASCAL a d,abord &ompil le %orm6laire grE&e > &es So6r&es et &elles de LAZARUS. LAZARUS &,est 6n Environnement de Dveloppement 5ntgr. Vo6s ave; e6 pe6 de programmation > e%%e&t6er po6r &rer &e logi&iel.

1)Le nom $%unit&


Alle; dans l,SRdite6r de So6r&esS. Pla&e;1vo6s a6 db6t de l,6nit d6 %orm6laire. D6 Code PASCAL -b.et &ommen&e to6.o6rs par la &la6se SUnitS reprenant lettre po6r lettre le nom d6 %i&"ier PASCAL. Le nom d,6nit se &"ange dans SFi&"ierS< p6is SEnregistrer so6sS. En gnral &"a:6e instr6&tion PASCAL est termine par 6n SVS. 5l e?iste de rares e?&eptions po6r les:6elles le Compilate6r vo6s avertit. Po6r la &ompatibilit UG5F o6 L5GUF il est pr%rable de renommer les noms d,6nits en min6s&6les.

'2

Programmer %a&ilement 1 Crer 6n logi&iel

')La ()ause *uses*


Ens6ite vo6s ave; s6rement > r6tiliser des e?istants. La &la6se S6sesS est %aite po6r &ela. La &la6se S6sesS permet d,aller &"er&"er les e?istants &rs par l,:6ipe LAZARUS o6 bien par 6n dveloppe6r indpendant de LAZARUS. Lors:6e vo6s a.o6te; 6n Composant grE&e > l,onglet des Composants &ela a.o6te a6ssi l,6nit d6 Composant dans la &la6se S6sesS. A6ssi 6n lien est &r dans le pro.et vers le regro6pement d,6nits nomm pa:6et. Vo6s a6re; sans do6te > a.o6ter les 6nits &omm6nes LAZARUS &omme SLCLBDpeS o6 SLCL5nt%S. Ces librairies rempla&ent &ertaines 6nits de DELP45 &omme l,6nit S@indo@sS. Po6r:6oi n,a1t1on pas gard &ertaines 6nits DELP45 K Les librairies LAZARUS poss)dent 6ne nomen&lat6re. Une librairie possdant le mot S@inS est 6ne librairie sDst)me sp&i%i:6e > la plate1 %orme A5GD-AS. Elle ne doit pas =tre 6tilise dire&tement dans vos programmes. Les 6nits SgtJS servent > L5GUF< S&arbonS > (AC -S< S6ni?S > UG5F. Vo6s ave; 6n aperM6 de &es mots &ls dans les S-6tilsS. La &on%ig6ration de &onstr6&tion de LAZARUS vo6s montre l,ensemble des plates1%ormes indi:6ant les 6nits > viter. Dans les So6r&es de LAZARUS< vo6s voDe; des 6nits &ommenMant pas &es plates1%ormes o6 &omportant &es noms de sDst)mes.

+)L%E,emp)e
Programmer %a&ilement 1 Crer 6n logi&iel '+

L,e?emple &onsiste > &rer 6ne %en=tre permettant d,a%%i&"er S4ello Aorld WS. Go6s allons diter 6n no6vea6 pro.et. Dmarre; LAZARUS. Alle; dans SFi&"ierS p6is SGo6vea6S. C"oisisse; SAppli&ationS. Bo6t d,abord no6s allons re&"er&"er l,6nit SDialogsS ave& bea6&o6p de %ainantise. Pla&e;1vo6s apr)s 6ne virg6le de la &la6se S6sesS. Comme &"a:6e instr6&tion< Cette derni)re se termine par 6n SVS. En respe&tant la prsentation LAZARUS< tape; 6ni:6ement SdiS. Ce :6i va s6ivre ne %on&tionne :6e si votre Code So6r&e est &orre&t< d6 db6t de l,6nit .6s:6,> votre ligne dite. App6De; en m=me temps s6r SCtrlS ave& ens6ite la barre d,espa&ement. RelE&"e;. 5l s,a%%i&"e 6ne liste d,6nits LAZARUS. C"oisisse; SDialogsS ave& les %l)&"es et la to6&"e SEntreS. G,o6blie; pas de pla&er ens6ite 6ne virg6le po6r ne pas &rer d,erre6r de &ompilation. Vo6s ave; a.o6t l,6nit Dialogs. Po6r voir &e :6e vo6s ave; a.o6t< maintene; en%on& SCtrlS to6t en &li:6ant s6r l,6nit SDialogsS. L,6nit SDialogsS s,a%%i&"e. Vo6s alle; vers la So6r&e lie en %aisant de &ette mani)re. LAZARUS va &"er&"er &e :6,il &onnait grE&e a6? liens de vos pro.ets et 6n Code &orre&t. -n voit :6e la &la6se S6sesS de SDialogsS &ontient d,a6tres 6nits. Celles1&i sont elles a6ssi a.o6tes > votre pro.et< si elles ne l,taient pas d.>. En e%%et des 6nits obligatoires sont to6.o6rs 6tilises. 73 Programmer %a&ilement 1 Crer 6n logi&iel

Bo6te &rit6re de Code a.o6te des in%ormations > votre e?&6table< ave& en pl6s des 6nits :6i sont intgres. Votre programme &ompil &ontient bea6&o6p de Code< mais il est indpendant. 0rE&e a6? onglets de l,SRdite6r de So6r&esS< vo6s po6ve; reto6rner s6r votre So6r&e en &li:6ant s6r l,onglet SUnit'S. Ce nom SUnit'S n,est pas e?pli&ite. Go6s allons le renommer en gardant 6ne partie des in%ormations importantes. Cli:6e; dans le men6 LAZARUS s6r SFi&"ierS p6is SEnregistrerS. Cre; votre rpertoire de pro.et< p6is sa6vegarde; votre 6nit en &ommenMant par S6QS. Cela indi:6e &omme avant :6e l,on sa6vegarde 6ne 6nit. Les %i&"iers sont ainsi regro6ps a6 m=me endroit. Ens6ite on met le t")me de l,6nit C S"elloS. Cela donne S6Q"elloS. Sa6vegarde;. Si vo6s ave; mis des ma.6s&6les dans le nom d,6nit< LAZARUS pe6t vo6s demander de renommer &e nom d,6nit en min6s&6le. G,alle; :6e rarement &ontre ses re&ommandations. Votre nom d,6nit est don& S6Q"elloS. Elle pe6t =tre ra.o6te dans 6ne &la6ses S6sesS d,6ne a6tre 6nit d6 pro.et.

La prsentation
Go6s allons ra.o6ter 6n bo6ton > notre %orm6laire. Po6r aller s6r le %orm6laire de l,6nit S6Q"elloS app6De; s6r SF'7S< :6and vo6s =tes s6r l,6nit dans l,SRdite6r de So6r&eS. Cli:6e; de no6vea6 s6r SF'7S permet de revenir s6r l,Sdite6r de So6r&eS. Revene; s6r la %i&"e. Alle; s6r la palette des Composants. Sle&tionne; dans le premier Programmer %a&ilement 1 Crer 6n logi&iel 7'

onglet SStandardS le bo6ton SB!6ttonS. Cli:6e; l,i&Nne SB!6ttonS. 5l s,en%on&e. Cli:6e; s6r le %orm6laire po6r pla&er votre SB!6ttonS. Vo6s voDe; > l,e?&6tion la m=me %en=tre ave& son SB!6ttonS sans les points noirs. Ces points noirs servent > se reprer > la &on&eption. Cli:6e; s6r le bo6ton de votre %orm6laire p6is s6r SF''S. Vo6s sle&tionne; l,S5nspe&te6r d,-b.etsS< :6i permet de modi%ier votre SB!6ttonS. Vo6s =tes s6r l,onglet SPropritsS de l,S5nspe&te6r d,-b.etsS. Cet onglet &lasse les proprits par ordre alp"abti:6e. Vo6s po6ve; &"anger la proprit SGameS de votre SB!6ttonS< a%in de renommer votre SB!6ttonS en S!Cli:6e;S. Vo6s voDe; alors le te?te d6 SB!6ttonS &"anger. C,est 6ne a6tomatisation de &e Composant :6i &"ange sa proprit SCaptionS< :6and on &"ange po6r la premi)re %ois son nom. Po6r vo6s rendre &ompte< alle; s6r la proprit SCaptionS et enleve; le S!S. Le nom de votre Composant n,a pas &"ang. Po6rtant la proprit SCaptionS a bien &"ang le te?te de votre SB!6ttonS.

Le Code Source
Alle; s6r l,onglet SEv)nementsS de l,S5nspe&te6r d,-b.etsS. Do6ble &li:6e; s6r l,vnement S-nCli&JS. Cela %ait le m=me e%%et :6e d,app6Der s6r les trois points C Vo6s &re; 6n lien vers 6ne pro&d6re dans votre SRdite6r de So6r&eS. Bape; entre le S!eginS et le SEndVS de &ette no6velle pro&d6re< de6? 77 Programmer %a&ilement 1 Crer 6n logi&iel

espa&es p6is Ss"o@S. P6is app6De; en m=me temps s6r SCtrlS s6ivi de SEspa&eS. Si vo6s ave; a.o6t l,6nit SDialogsS vo6s voDe; la pro&d6re SS"o@(essageS. Cette pro&d6re simple poss)de 6n se6l param)tre &"aLne. Sle&tionne; &ette pro&d6re ave& les %l)&"es et entre. Vo6s po6ve; a6ssi 6tiliser la so6ris. Vo6s ave; maintenant > a.o6ter le param)tre permettant d,a%%i&"er d6 te?te. Les param)tres des pro&d6res sont intgrs grE&e a6? parent")ses. -6vre; votre parent")se. Les &"aLnes sont a.o6tes en les ento6rant par 6ne apostrop"e. L,instr6&tion se termine par 6n SVS. R&rive; don& C Begin S"o@(essage U ,4ello Aorld, )V End; Go6s allons a%%i&"er 6n message S4ello AorldS :6and on &li:6e s6r le bo6ton S!Cli:6e;S. App6De; sim6ltanment s6r SCtrlS s6ivi de SF+S. Cela &ompile votre e?&6table< en vri%iant la sDnta?e et en donnant des avertissements. Cli:6e; s6r o6 app6De; s6r SF+S po6r e?&6ter votre Logi&iel %en=tre. Apr)s avoir app6D s6r le bo6ton voi&i &i1apr)s &e :6e &ela donne C

Programmer %a&ilement 1 Crer 6n logi&iel

7*

Un exe ple ondial avec un !v!ne ent

-)La Sour(e $u .ormu)aire


Le tDpe gal > S&lass UBForm)S d&rit l,lment essentiel de l,ED5 LAZARUS. 5l s,agit de la %en=tre a%%i&"e &ontenant le bo6ton. -n ne voit pas dans &ette d&laration l,endroit oX on a pla& le bo6ton. L,endroit oX on a pla& le bo6ton se modi%ie dans l,S5nspe&te6r d,-b.etsS. L,S5nspe&te6r d,-b.etsS sa6ve les proprits dans le %i&"ier portant l,e?tension S.l%mS. Vo6s po6ve; voir &e %i&"ier en a%%i&"ant s6r le %orm6laire modi%iable 6n men6< grE&e a6 bo6ton droit de la so6ris. Dans &e men6 &li:6e; s6r SA%%i&"er le So6r&eS. En s&r6tant le %i&"ier S.l%mS vo6s voDe; le bo6ton et ses &oordonnes a%%i&"es. Le tDpe gal > S&lass UBForm)S permet d,a%%i&"er la %en=tre et son bo6ton en lisant &e %i&"ier S.l%mS.

Programmer %a&ilement 1 Crer 6n logi&iel

"A""ic#er le Source" dans la conception du "or ulaire Les modi%i&ations apportes a6 %i&"ier permettent entre a6tre d,intervertir des Composants. Po6r %aire &ela vo6s ave; reli le pa:6et d6 Composant a6 pro.et grE&e a6 S0estionnaire de pro.etS.
B)PAQUET POUR DBUTANTS

Dans la version 3.+.*3 de LAZARS a t a.o6t 6n pa:6et< 6ne bibliot"):6e don&< permettant de %a&iliter le dveloppement po6r les db6tants. Ce pa:6et installe des %on&tionnalits LAZARUS permettant de s,"abit6er a6 nommage< to6t en %a&ilitant la &ration de Code a6 sein de LAZARUS. Alle; dans SPa:6etsS< p6is SCon%ig6rer les pa:6etsS. Une %en=tre s,o6vre. S6r la liste de droite< sle&tionne; le pa:6et Sed6&ationla;S< po6r l,S5nstallerS. SRe&onstr6ise; LAZARUSS. Apr)s :6e LAZARUS ait redmarr< dans SCon%ig6rationS< p6is S-ptionsS< vo6s po6ve; &"anger les param)tres po6r db6tants dans SRd6&ationS. Programmer %a&ilement 1 Pa:6et po6r db6tants 7/

Des les options d,SEd6&ationS< dans S0nralS< a&tive; le mode SDb6tantS. Dans &es options to6.o6rs et dans la SPalette de ComposantsS S(ontre; to6tS. 5l est en e%%et possible d,D &a&"er les &omposants :6e l,on ne so6"aite pas 6tiliser. (ais &ette option< a&tive po6r les pro%esse6rs< est s6rto6t rserve a6? dmonstrations. Vo6s po6ve; a%%i&"er o6 &a&"er d,a6tres o6tils< &omme les bo6tons de r%ren&ement d,6nits< de &lasses.
C)INDENTATION

PASCAL

Vo6s voDe; dans l,e?emple :6e le Code So6r&e est .oliment prsent. Cela n,est pas 6ne %6tilit p6is:6e vo6s ave; e6 envie de le regarder. Vo6s ave; pe6t1=tre e6 envie de prendre e?emple s6r &e :6i avait t %ait. Voi&i la re&ette > s6ivre po6r %aire de m=me et mie6? en&ore. Un Code So6r&e bien prsent &e sont des dveloppe6rs ave& 6n &omportement &lair et pr&is. L,indentation &,est la prsentation d6 Code So6r&e po6r :6,il devienne lisible. En e%%et vo6s &re; d6 Code ma&"ine< alors :6e &e sont des "ommes et %emmes :6i se6ls pe6vent le s&r6ter< et le modi%ier &orre&tement. Les erre6rs sont to6.o6rs "6maines. L,indentation &,est don& d6 Code So6r&e lisible. L,indentation permet de prsenter le Code So6r&e a%in de le &omprendre &omme &lair< sans avoir > %o6iller po6r tro6ver &e :6e l,on &"er&"e. L,indentation des dite6rs PASCAL est simple. En voi&i 6n rs6m C C"a:6e instr6&tion o6 nY6d U var< tDpe< &lass< i%< @"ile< &ase< et&. ) est > la m=me position :6e la ligne pr&dente C"a:6e imbri&ation d,6n nY6d doit =tre d&ale de de6? espa&es 7# Programmer %a&ilement 1 5ndentation PASCAL

vers la droite Les instr6&tions in&l6es entre les S!eginS et SEnd VS sont d&ales de de6? espa&es vers la droite Cette prsentation permet de revoir d6 Code So6r&e pl6s %a&ilement. Les dveloppe6rs :6i regardent d6 Code So6r&e ave& &ette prsentation sont pl6s pr&is et pl6s sZrs d,e6?. Po6r aider > indenter de6? &ombinaisons de to6&"es sont tr)s importantes dans les dite6rs PASCAL C Ctrl [ 9 [ U permet de d&aler votre sle&tion de lignes de de6? espa&es vers la ga6&"e. Ctrl [ 9 [ 5 permet de d&aler votre sle&tion de lignes de de6? espa&es vers la droite. Vo6s po6ve; a6ssi a.o6ter des r)gles de prsentation d6 Code :6i %a&ilitent la maintenan&e. Go6s vo6s disons po6r:6oi appli:6er &es r)gles de prsentation C Des &ommentaires sont obligatoirement avant &"a:6e So6r&e de %on&tions o6 pro&d6res. Ainsi les &ommentaires avant &"a:6e %on&tion o6 pro&d6re sont v6s dans l,dite6r FREE PASCAL lors:6e vo6s mette; la so6ris s6r la %on&tion o6 pro&d6re. Des &ommentaires sont dans le So6r&e si on D tro6ve 6n !og6e o6 erre6r. Si on &orrige 6n !og6e dans le So6r&e< il est possible :6e l,erre6r revienne s,il n,D a pas de &ommentaires. Des &ommentaires sont dans le So6r&e d)s :6e l,on r%l&"it po6r &rire 6ne So6r&e. Si le Code demande r%le?ion po6r =tre %ait< &,est :6e vo6s D r%l&"ire; > no6vea6 si vo6s n,D mette; pas de &ommentaires. Gotre mmoire o6blie &e :6e l,on a &rit. C"a:6e %on&tion doit tenir s6r la "a6te6r d,6n &ran. Une %on&tion :6i ne tient pas s6r la "a6te6r d,6n &ran est non str6&t6re< illisible< di%%i&ile > maintenir< di%%i&ilement &ompilable si retravaille.

Programmer %a&ilement 1 5ndentation PASCAL

7$

5l e?iste d,a6tres mt"odes de str6&t6ration< &omme par e?emple mettre des sries d,instr6&tions alignes mot > mot. Cela permet de retro6ver %a&ilement les di%%ren&es si le Code So6r&e se rp)te. Comme l,dite6r FREE PASCAL pe6t terminer les mots< il est possible d,a%%e&ter des longs noms de variables et pro&d6res. Bo6te no6vea6t de l,dite6r est > saisir. Cela %a&ilite le travail. Vo6s po6ve; d%inir votre prsentation et la tester. Les e?emples :6e no6s vo6s montrons apr)s sont indents.

1)Param&trer )%in$entation
Vo6s po6ve; modi%ier les S-ptionsS d,S5ndentationS dans SCon%ig6rationS< p6is S-ptionsS< p6is S-6tils de CodeS< p6is S0nralS< p6is S5ndentationS.

D)STRUCTURE DU

CODE SOURCE

Go6s allons d&rire le Code So6r&e pr&demment montr. En gnral 6ne 6nit %aite en PASCAL se str6&t6re ave& d,abord 6n en1 t=te< p6is des d&larations p6bli:6es< p6is le Code So6r&e e?&6table. Bo6te 6nit PASCAL se termine par Send.S.

1)La $&()aration Unit


72 Programmer %a&ilement 1 Str6&t6re d6 Code So6r&e

La d&laration SUnitS est la premi)re d&laration d,6n %i&"ier PASCAL. Elle est obligatoire et obligatoirement s6ivi d6 nom de %i&"ier PASCAL< sans l,e?tension. -n &"ange &ette d&laration en sa6vegardant l,6nit.

')Les $&()arations pu/)i0ues


Les d&larations p6bli:6es &omprennent obligatoirement le mot &l Sinter%a&eS indi:6ant le db6t des d&larations p6bli:6es. Vo6s po6ve; ens6ite D pla&er l,instr6&tion S6sesS permettant d,6tiliser dans les d&larations p6bli:6es les 6nits d.> e?istantes. Vo6s po6ve; ens6ite pla&er to6te d&laration &onstante< tDpe< variable< %on&tion o6 pro&d6re. Bo6te d&laration in&l6se dans la &ompilation a.o6te d6 Code > l,e?&6table. Les variables allo6ent soit 6n pointe6r soit 6n tDpe simple. Un pointe6r est 6ne adresse pointant vers 6n endroit de la mmoire. 5l permet de d%inir et de sto&Jer des tDpes &omple?es. Les &onstantes p6bli:6es pe6vent =tre &entralises dans 6ne o6 pl6sie6rs 6nits.

+)Le Co$e Sour(e e,&(ut&


Le Code So6r&e &ommen&e par le mot &l SimplementationS. En pl6s des d&larations d.> d%inies< on pla&e dans &ette partie le Code So6r&e e?&6t grE&e a6? %on&tions et pro&d6res. Dans le Code So6r&e e?&6t on pe6t pla&er les m=mes d&larations :6e &elles donnes pr&demment. Se6lement elles ne sont pl6s p6bli:6es don& pas 6tilisables aille6rs. Programmer %a&ilement 1 Str6&t6re d6 Code So6r&e 7+

La pro&d6re SS"o@(essageS vo6s a permis d,a%%i&"er 6ne boLte ave& 6n message et 6n bo6ton. Si vo6s regarde; le Code So6r&e de SS"o@(essageS grE&e > SCtrlS vo6s voDe; :6,elle est d&lare ave& le mot &l Spro&ed6reS. Une %on&tion s,appelle de la m=me %aMon mais renvoie 6ne variable reto6r. En e%%et le rNle des %on&tions et pro&d6res est de modi%ier 6ne partie de votre Logi&iel. Elles trans%orment 6ne entre en sortie &omme le %erait 6ne :6ation mat"mati:6e. L,vnement :6e vo6s ave; &r est 6ne pro&d6re parti&6li)re :6i a permis d,a%%i&"er votre message > l,&ran. La sortie i&i &,est l,a%%i&"age de S4ello AorldS dans 6ne %en=tre de dialog6e. Bo6te %on&tion o6 pro&d6re d&lare p6bli:6ement doit avoir 6ne &orrespondan&e dans le Code So6r&e e?&6t. Le Compilate6r vo6s le rappelle si vo6s o6blie;. Le Code So6r&e :6e vo6s ave; a.o6t tait dans la partie SimplementationS.

-)Le Co$e Sour(e e,&(ut& au (har1ement


5l est possible d,e?&6ter d6 Code So6r&e d)s le &"argement de l,6nit a%in d,a6tomatiser la gestion de l,6nit. Ces instr6&tions sont > 6tiliser en dernier re&o6rs. Le Code So6r&e pla& apr)s le mot &l Sinitiali;ationS permet de &rer des -b.ets to6.o6rs en mmoire d)s :6e l,on 6tilise l,6nit. Le Code So6r&e pla& apr)s le mot &l S%inali;ationS permet de dtr6ire les -b.ets en mmoire > la %ermet6re d6 programme.

*3

Programmer %a&ilement 1 Str6&t6re d6 Code So6r&e

2)Fin $e )%unit&
La %in de l,6nit est d%inie par Send.S
E)LES FICHIERS RESSOURCES

A la %in d,6n %i&"ier PASCAL &ontenant votre %orm6laire< voi&i &e :6e l,on pe6t mettre C {$IFDEF FPC} {$i Unite.lrs} {$ENDIF} Ces trois lignes signi%ient C Si la dire&tive FPC o6 Compilate6r FREE PASCAL est a&tive< alors in&l6re le %i&"ier SUnite.lrsS. LAZARUS 6tilise d,a6tres %i&"iers resso6r&es :6e B6rbo PASCAL< o6 DELP45. -n appelle les %i&"iers resso6r&es LAZARUS les %i&"iers S.lrsS :6i n&essitent idalement d,avoir des %i&"iers images en %ormat image &ompresse FP(. Les %i&"iers S.lrsS pe6vent &ontenir a6ssi le %i&"ier S.l%mS dans les 6nits de %orm6laires< po6r les versions an&iennes de LAZARUS. Go6s vo6s e?pli:6ons pl6s loin la &ration de votre premier Composant. Une partie de &e &"apitre d&rit la &ration et l,6tilisation d6 %i&"ier S.lrsS.
F)TOUCHES DE RACCOURCIS DE COMPLTION

La &ompltion permet d,&rire > votre pla&e. C,est indispensable po6r to6t programme6r &"er&"ant > gagner d6 temps.

Programmer %a&ilement 1 Bo6&"es de ra&&o6r&is de &ompltion

*'

Ctrl[Espa&e

Re&"er&"er dans le Code li C

Ctrl[(a. [Espa&e

A%%i&"er la sDnta?e des mt"odes C

Ctrl[(a.[ Dans l,dite6r C Aller dire&tement de la d&laration %l)&"e "a6t d,6ne mt"ode > son implmentation. o6 bas Ctrl[(a.[C Complment de Code C vo6s entre; procedure totoUsCstring) dans C
type TForm1 = class(TForm) private procedure toto(s:string); public

5l vo6s &rit< dans la partie implmentation C


procedure TForm1.toto(s:string); begin end;

Ctrl[(a.[i 5ndenter pl6sie6rs lignes > la %ois o6 Passer de Ctrl[(a.[6 begin begin if F \3 t en ?]3V if F \3 t en ?]3V if F^3 t en ?]1'VA if F^3 t en ?]1'V AC]tr6&[ma&"intr6&V AC]tr6&[ma&"intr6&V end; end; Sans le %aire ligne par ligne K Sle&tionner les lignes p6is %aire Ctrl[(a.[i po6r dpla&er les lignes vers la droite< o6 Ctrl[(a.[6 po6r *7 Programmer %a&ilement 1 Bo6&"es de ra&&o6r&is de &ompltion

les dpla&er vers la ga6&"e. (a.[to6&"e %l)&"e et Ctrl[to6&"e %l)&"e Ctrl[. Positionner o6 dimensionner a6 pi?el pr)s 6n Composant

Faire appel a6? mod)les de Code. Gota C les mod)les de Code permettent d,&rire d6 Code to6t %ait par e?empleC en &"oisissant le mod)le de Code i% t"en else apr)s avoir %ait Crtl [ .< on obtient
if then begin end else begin end;

A6tre ast6&e C &"a:6e mod)le de Code poss)de 6ne abrviation. Bape; &ette abrviation p6is Crtl [ .. Bape; par e?emple Si%S p6is Crtl [ .. Les lignes &orrespondant > Si% t"en elseS s,&rivent > votre pla&e. Les abrviations disponibles sont visibles en %aisant Crtl [ ..

Programmer %a&ilement 1 Bo6&"es de ra&&o6r&is de &ompltion

**

Ctrl[(a. ['>+ et Ctrl[ '>+

Pla&er des mar:6es Udes signets) dans 6n So6r&e po6r po6voir D revenir 6ltrie6rement Vo6s =tes s6r 6n bo6t de So6r&e et vo6s vo6s aller voir aille6rs dans l,6nit p6is revenir rapidement C Bape; CCBRL S45FB ' Uo6 6n &"i%%re de ' a + a6 dess6s des lettres et non dans le pav n6mri:6e) l,dite6r met 6n S'S dans la marge. Po6r revenir vo6s %aites CBRL ave& ' Po6r ann6ler la mar:6e< soit vo6s vo6s pla&e; s6r la ligne et vo6s re%aites CBRL S45FB '< soit vo6s vo6s pla&e; aille6rs et vo6s re%aites CBRL S45FB '< po6r dpla&er la mar:6e.

Ctrl[ Se dpla&er a6 mot s6ivant o6 pr&dent. %l)&"e droite o6 ga6&"e Ctrl[(a. Se dpla&er a6 mot s6ivant o6 pr&dent to6t en [ droit o6 sle&tionnant. ga6&"e Ctrl ["a6t o6 Revient a6 m=me :6e d,6tiliser l,as&ense6r bas

1)#ou(hes $e ra((our(i pro3et


Bo6&"e Ctrl[F'' (a.[F'' F+ Ctrl [ F+ Ctrl[S * A&tion d6 men6 Fi&"ier _ -6vrir 6n pro.et Pro.et _ A.o6ter a6 pro.et E?&6ter _ E?&6ter Compiler le pro.et Fi&"ier _ Enregistrer Programmer %a&ilement 1 Bo6&"es de ra&&o6r&is de &ompltion

Ctrl[F7 Ctrl[F

Rinitialiser le programme ] arr=te votre programme et revient en mode dition Ferme le %i&"ier en &o6rs

G)TOUCHES DE RACCOURCIS DE VISIBILIT

Bo6&"e Ctrl[F* F' F'' F'7 Ctrl[F'7 (a.[F'7 Ctrl[(a.[E Ctrl[(a.[! Ctrl[ (a.[B Alt[F'3 Alt[F'' Alt[F'7

A&tion d6 men6 Voir _ Fen=tres de dbogage _ Pile d,appels A%%i&"e l,aide &onte?t6elle Usi si .e vo6s ass6re) Voir _ 5nspe&te6r d,-b.ets Voir _ !as&6ler s6r Form6laireOUnit Voir _ Units Voir _ %orm6laires Voir l,e?plorate6r de Code Voir l,e?plorate6r de &lasse A.o6ter 6n lment > %aire A%%i&"e 6n men6 &onte?t6el Fi&"ier _ Utiliser l`6nit !as&6le Form vis6el O So6r&e de la %orme

H)TOUCHES DE RACCOURCIS DE DBOGAGE

Les ra&&o6r&is de dbogage sont gnralement 6tiliss dans l,dite6r de So6r&e. 5ls permettent de s&r6ter le Code So6r&e.

Programmer %a&ilement 1 Bo6&"es de ra&&o6r&is de dbogage

*/

5l est possible de pla&er 6n point ro6ge s6r 6ne ligne de votre So6r&e< dans la marge grise > ga6&"e de votre So6r&e. C,est 6n point d,arr=t. 5l va =tre appel d)s :6e l,on e?&6tera la ligne ave& &e point d,arr=t< si l,e?&6table le permet.

1)E,er(i(e
Pla&e; 6n point d,arr=t > SS"o@(essageS dans votre e?emple. E?&6te; et &li:6e; s6r le bo6ton. En gnral le programme se %ige< p6is LAZARUS se pla&e s6r le SPoint d,arr=tS :6e vo6s ave; mis.

')"es points $%arr4t sont ina(ti.s


Po6r :6e &es points d,arr=t %on&tionnent< votre pro.et doit se &ompiler d,6ne &ertaine mani)re. Votre e?&6table devient ainsi di? %ois pl6s important :6,"abit6ellement. Si les points d,arr=t %on&tionnent< votre e?&6table est tr)s lo6rd. Alle; dans le men6 SPro.etS< p6is S-ptions d6 Pro.etS< p6is S-ptions de &ompilationS. Alle; dans l,onglet SRdition des liensS. Co&"e; SA%%i&"er les n6mros de lignesS. Ces n6mros servent > &e :6e le dbog6e6r se rep)re. Ces n6mros de ligne alo6rdissent votre e?&6table. Alle; dans l,onglet Code. En bas dans S-ptimisationsS &"oisisse; l,option SGivea6 3S o6 SGivea6 'a. Le nivea6 3 &re 6n tr)s gros e?&6table mais s&r6te to6s les points d,arr=t.

*#

Programmer %a&ilement 1 Bo6&"es de ra&&o6r&is de dbogage

Le niveau $ par d!"aut cr!e un %ros ex!cuta&le Bo6&"e F F/ F$ (a.[F$ F2 Ctrl[F/ Ctrl[F$ A&tion d6 men6 E?&6ter _ 86s:6,a6 &6rse6r E?&6ter _ A.o6ter 6n point d,arr=t E?&6ter _ Pas > pas appro%ondi E?&6ter _ 86s:6,> la pro&"aine ligne E?&6ter _ Pas > pas A.o6ter 6n point de s6ivi so6s le &6rse6r Eval6erO(odi%ier

I)TOUCHES DE RACCOURCIS DE L'DITEUR

Bo6&"e Ctrl[9[!

A&tion (ar:6e le db6t d,6n blo& *$

Programmer %a&ilement 1 Bo6&"es de ra&&o6r&is de l,dite6r

Ctrl[9[C Ctrl[9[4 Ctrl[9[9 Ctrl[9[L Ctrl[9[G Ctrl[9[Ctrl[9[P Ctrl[9[R Ctrl[9[B Ctrl[9[V Ctrl[9[A Ctrl[9[H

Copie le blo& sle&tionn A%%i&"eO&a&"e le blo& sle&tionn (ar:6e la %in d,6n blo& (ar:6e la ligne en &o6rs &omme blo& Fait passer 6n blo& en ma.6s&6les Fait passer 6n blo& en min6s&6les 5mprime le blo& sle&tionn Lit 6n blo& de procedure p6is 6n %i&"ier (ar:6e 6n mot &omme blo& Dpla&e le blo& sle&tionn R&rit le blo& sle&tionn dans 6n %i&"ier S6pprime le blo& sle&tionn

J)TOUCHES DE RACCOURCIS DE L'ENVIRONNEMENT

Bo6&"e Ctrl[C Ctrl[V Ctrl[F

A&tion d6 men6 Rdition _ Copier Rdition _ Coller Rdition _ Co6per

*2 Programmer %a&ilement 1 Bo6&"es de ra&&o6r&is de l,environnement

E)"A PRE"I5RE APPLICA#ION


CREAB5VE C-((-G !H SA

A)A FAIRE AVANT

Avant de &rer sa premi)re Appli&ation< sa&"e; avant si &,est 6tile de &rer le Logi&iel vo6l6. Vri%ie; :6e &e :6e vo6s vo6le; ne se %ait pas d.>. A l,"e6re a&t6elle< se6ls les Logi&iels ave& 6ne personnalisation a&&r6e sont > &rer.
B)L'EXEMPLE

Dans notre premier e?emple< no6s allons tester la &ration de notre inter%a&e "omme ma&"ine. -n &re 6n 6tilitaire de re&"er&"e o6 de rempla&ement< > personnaliser. Go6s &rons a6ssi notre propre savoir1 %aire &entralis.
C)CRATION DE L'INTERFACE

Un Logi&iel doit =tre &r rapidement. Go6s allons rapidement &rer 6ne inter%a&e 4omme1(a&"ine. LAZARUS est 6n o6til permettant de &rer rapidement 6n Logi&iel< grE&e > son inter%a&e grap"i:6e et d6 Code 6ni:6ement ddi a6 dveloppement.
D)TESTER SES

COMPOSANTS

5l est possible de &rer rapidement son Logi&iel. (a premi)re appli&ation 1 Bester ses Composants *+

Po6r &rer rapidement son Logi&iel< il s6%%it de pla&er &orre&tement les Composants< apr)s avoir &li:6 s6r 6n Composant de la palette de Composants. La palette de Composants &omporte 6n ensemble d,onglets identi:6es > des onglets de &lasse6r. Lors:6e vo6s &li:6e; s6r 6n onglet portant 6n &ertain nom< 6n ensemble de Composants &lasss so6s &e nom s,a%%i&"ent.

La palette de Co posants Vo6s voDe; :6,il est possible de pla&er 6n &ertain nombres de Composants< sans limite de prsentation. Certains Composants ne sont reprsents :6e par le m=me grap"isme< de m=me taille :6e son i&Nne sit6 dans la palette. Ces Composants n,ont en gnral a6&6ne proprit grap"i:6e. Ce sont des Composants invisibles &apables de raliser &ertaines oprations vis6elles o6 pas. D,a6tres Composants a.o6tent 6n vis6el > votre %orm6laire. Ce sont des Composants vis6els. Avant de pla&er vos Composants vis6els< n,o6blie; pas d,6tiliser 6n Composant SBPanelS po6r 6ne prsentation soigne. Les Composants SBPanelS permettent > vos Composants vis6els de se disposer s6r l,ensemble de l,espa&e vis6el disponible.
E)L'EXEMPLE

Go6s allons &rer &ette a6tomati:6ement > sa %en=tre C

inter%a&e

&i1apr)s.

Elle

s,adapte

(a premi)re appli&ation 1 L,E?emple

'a pre i(re Application

1)Une pr&sentation soi1n&e


Po6r &ommen&er notre 5nter%a&e 4omme1(a&"ine< dispose; 6n Composant SBPanelS. Les SBPanelS permettent > l,inter%a&e d,6tiliser le ma?im6m d,espa&e de travail. Gotre premier SBPanelS sert > disposer les bo6tons. En &li:6ant s6r l,onglet SStandardS vo6s po6ve; a.o6ter 6n pannea6< en anglais 6n SpanelS. Cli:6e; dess6s< p6is &li:6e; s6r le %orm6laire. Cli:6e; s6r F'' po6r a%%i&"er l,inspe&te6r d,-b.et. Votre SBPanelS D est sle&tionn. Cli:6e; s6r la boLte > option de la proprit SAlignS< et a%%e&te; Sal!ottomS > SAlignS. Le de6?i)me SBPanelS sert > disposer le Composant de sle&tion d6 rpertoire. A.o6te; le SBPanelS de la m=me mani)re mais a.o6te;1le dans la ;one vide. (a premi)re appli&ation 1 L,E?emple '

Cli:6e; s6r F'' po6r a%%i&"er l,S5nspe&te6r d,-b.etS. Votre SBPanelS D est sle&tionn. Cli:6e; s6r la boLte > option de la proprit SAlignS< p6is a%%e&te; SalBopS > SAlignS. Le troisi)me SBPanelS a%%i&"e les %i&"iers > &onvertir. Dispose; 6n de6?i)me SBPanelS dans la ;one oX il n,D a pas de SBPanelS. Votre SBPanelS doit don& s,aplatir s6r to6t le %orm6laire. A%%e&te; SalClientS > la propit SAlignS de &e SBPanelS a%in de disposer d,6n ma?im6m d,espa&e. Vo6s po6ve; enlever les bord6res de vos SBPanelS...

')L%Inter.a(e Homme "a(hine


Ens6ite no6s allons disposer les Composants de sle&tion de rpertoire et de %i&"iers< dans les SBPanelS. Go6s allons a6ssi disposer les bo6tons. Dispose; 6n Composant SBDire&torDEditS s6r le pannea6 SBPanelS d6 "a6t. Le Composant SBDire&torDEditS pe6t sembler insatis%aisant grap"i:6ement. En e%%et< il n,a%%i&"e pas l,arbores&en&e dtaille des rpertoires. Vo6s po6ve; &ons6lter le &"apitre s6ivant po6r re&"er&"er 6n meille6r savoir1%aire. 5l est possible d,an&rer le Composant SBDire&torDEditS s6r la long6e6r d6 SBPanelS. -6 alors &"oisisse; 6n Composant de sle&tion de rpertoire pl6s abo6ti. Les Composants %o6rnis ave& LAZARUS sont tests s6r l,ensemble des plates1%ormes disponibles< en %on&tion de la SRoad(apS LAZARUS. Cons6lte;1la s6r @@@.la;ar6s.%reepas&al.org. Par e?emple la SRoadmapS LAZARUS indi:6e en 73'' :6e des 7 (a premi)re appli&ation 1 L,E?emple

Composants ne mar&"ent pas s6r (AC -S. Dispose; 6n Composant de sle&tion de %i&"iers SBFileList!o?S dans le pannea6 d6 milie6. Vo6s po6ve; l6i a%%e&ter la vale6r SalClientS > sa proprit SAlignS. Vos %i&"iers sont disposs s6r l,ensemble de l,inter%a&e. 5ls sont don& visibles po6r l,6tilisate6r. Dispose; les bo6tons SB!6ttonS s6r le pannea6 d6 bas. Les bo6tons n,ont pas besoin d,=tre aligns< &ar le te?te :6i le6r est a%%e&t a 6ne long6e6r &onn6e. 5ls sont aligns > partir de la ga6&"e. Vo6s po6ve; par e?emple &rer 6n bo6ton :6i a%%i&"e la date d6 %i&"ier< son &"emin< et&. Go6s allons &rer 6n Logi&iel de &onversion de %i&"iers LAZARUS. Crer 6n bo6ton ave& le nom SConvertirS. Vo6s voDe; :6e son libell vis6el &"ange. Vo6s ave; a%%e&t a6ssi la proprit SCaptionS d6 Composant. C"ange; le nom et son libell vis6el sparment. 5l est n&essaire de relier l,dite6r de rpertoire ave& la liste de %i&"ier. Do6ble1&li:6e; s6r l,vnement S-nC"angeS d6 SBDire&torDEditS. Pla&e;1D &ette So6r&e C procedure BForm'.Dire&torDEditC"angeUSenderC B-b.e&t!; begin FileList!o?.Dire&torD "# Dire&torDEdit.Dire&torD ; end; Do6ble1&li:6e; s6r l,vnement S-n&li&JS d6 bo6ton. Pla&e;1D &ette So6r&e C procedure BForm'.ConvertirCli&JUSenderC B-b.e&t)V $ar liQi C 5nteger V begin For LiQi C] 3 %o FileList!o?.5tems.Co6nt 1 ' do (a premi)re appli&ation 1 L,E?emple *

Begin ConvertitFi&"ier U Dire&torDEdit.Dire&torD [ Dire&torDSeparator [ FileList!o?.5tems.Strings b liQi c< FileList!o?.5tems.Strings b liQi c )V End ; end; Ge &ompile; pas. 5l man:6e la pro&d6re SConvertitFi&"ierS i&i C procedure BForm'.ConvertitFi&"ierU&onst FilePat"< FileGame C String)V $ar liQi C 5nteger V lsQLignes C AideString V lbQDF( < lbQLF( C !oolean V lstQLignes C BStringList V begin lbQDF( C] PosE? U ,.d%m,< Lo@erCase U FilePat" )< lengt" U FilePat" ) 1 / ) \] lengt" U FilePat" ) 1 / V lbQLF( C] PosE? U ,.l%m,< Lo@erCase U FilePat" )< lengt" U FilePat" ) 1 / ) \] lengt" U FilePat" ) 1 / V lstQLignes C] BStringList.CreateV tr& lstQLignes.LoadFromFile U FilePat" )V lsQLignes C] lstQLignes.Be?tV Appli&ation.Pro&ess(essagesV OO Conversion d,6ne &"aine d6 %i&"ier lsQLignes C] StringRepla&e U lsQLignes< ,BAD-P6erD,< ,BZP6erD,< br%Repla&eAll<r%5gnoreCasec )V if lbQDF( or lbQLF( % en Begin (a premi)re appli&ation 1 L,E?emple

End; else Begin End; Appli&ation.Pro&ess(essages V lstQLignes.Be?t C] lsQLignes V lstQLignes.SaveBoFile U FilePat" )V finall& lstQLignes.FreeV end; end; Vo6s voDe; :6e &ette mt"ode prend bea6&o6p de pla&e. Vo6s po6ve; la &o6per< a%in de mie6? programmer. Une %ois :6e vo6s ave; &r la pro&d6re SConvertitFi&"ierS< app6De; sim6ltanment s6r SCtrlS< SS"i%tS< ave& SCS. Ainsi< si la so6r&e &ompile< la pro&d6re SConvertitFi&"ierS est renseigne dans votre %i&"e en %on&tion de la d&laration. A6 db6t on teste si l,e?tension de %i&"ier est Sl%mS< Sd%mS< o6 SpasS. La %on&tion SPro&ess(essagesS de BAppli&ation sert pendant les bo6&les. Elle permet > l,environnement de travailler< a%in d,a%%i&"er la %en=tre. La %on&tion SStringRepla&eS reto6rne 6ne &"aine< dont 6ne so6s1&"aine en param)tre a vent6ellement t rempla&e. Elle poss)de des options< &omme le rempla&ement s6r to6te la &"aine< la distin&tion o6 pas des ma.6s&6les et min6s&6les. A la %in on a%%e&te le SBStringlistS par sa proprit SBe?tS< p6is on rempla&e le %i&"ier en 6tilisant la pro&d6re SSaveBoFileS< ave& le nom (a premi)re appli&ation 1 L,E?emple /

de %i&"ier pass en param)tre de la pro&d6re SConvertitFi&"ierS. Faites 6ne &opie d6 pro.et< avant de le &onvertir par &ette mo6linette. 5l n,D a pl6s :6,> %iltrer les %i&"iers de la liste de %i&"iers en %on&tion d6 rs6ltat demand par l,6tilisate6r C Convertir to6t o6 &onvertir des %i&"iers Sl%mS< des %i&"iers Sd%mS o6 des %i&"iers SpasS. Pla&e; 6ne BFilterCombo!o?. Renseigne; les tDpes de %i&"iers vo6l6s en renseignant SFilterS. S,il n,D a pas d,dite6r de proprit ave& le lien vers l,dite6r< pla&e; &e genre de %iltre C Bo6s les %i&"iers Ud.d)_d.d_Fi&"iers DELP45 et LAZARUS_ d.dprVd.pasVd.d%mVd.l%m_Fi&"iers pro.et_d.dpr_Units DELP45_d.pas_ Proprits DELP45_d.d%m_Proprits LAZARUS_d.l%m -n voit :6,ave& la version 3.+.*3 et sans dite6r de proprit il D a d6 temps perd6. P6is renseigne; l,vnement S-nC"angeS ave& &ette So6r&e C procedure BForm'.FilterCombo!o?C"angeUSenderC B-b.e&t)V begin FileList!o?.(asJ "# FilterCombo!o?.(asJV end; Vo6s po6ve; maintenant vo6s am6ser > &"anger les Composants de pro.ets LAZARUS< en srie. Gotre inter%a&e est pr=te > =tre renseigne. Ce :6i est visible par l,6tilisate6r a t &r rapidement. Go6s n,avons pas e6 besoin de tester l,inter%a&e. Po6r voir le &omportement de &et e?emple< e?&6te; en app6Dant s6r SF+S o6 en &li:6ant s6r le bo6ton . Vo6s po6ve; agrandir votre %orm6laire o6 le dimin6er po6r tester votre inter%a&e.

(a premi)re appli&ation 1 L,E?emple

F)CHERCHER DES

PROJETS

Ce &"apitre est 6ne aide servant > amliorer vos pro.ets grE&e > 5GBERGEB. LAZARUS poss)de > son installation 6n nombre limit de Composants. 5l est possible de tro6ver des savoir1%aire s6r 5GBERGEB. Po6r tro6ver 6n Composant< d%inisse; &e :6e vo6s so6"aite;< ainsi :6e les alternatives possibles. Ce n,est :6,ave& l,e?prien&e :6e l,on tro6ve des Composants ad:6ates. S6r votre mote6r de re&"er&"e tape; pl6tNt des mots anglais &omme S&omponentS< Spro.e&tS o6 Svis6alS ave& SLAZARUSS voire SDELP45S. P6is< ave& &es mots< tape; votre sp&i%i&ation en anglais. C"ange; de mots o6 de domaines< si vo6s ne tro6ve; pas.
G)INSTALLER DES

COMPOSANTS

Avant de &ompiler LAZARUS< Pense; > d6pli:6er l,e?&6table LAZARUS. Po6r installer des Composants d&ompresse; votre ar&"ive< p6is pla&e;1 la dans 6n dossier :6i ne bo6gera pas. Ave& LAZARUS o6vre; le o6 les pa:6ets portant l,e?tension S.lpJS. Compile; et installe;. Ge re&ompile; LAZARUS :6e si vo6s n,ave; pl6s de Composants > a.o6ter. Si le pa:6et ne &ompile pas &"er&"e; dans le dossier o6 s6r 5nternet les pa:6ets man:6ants et installe; les.
H)LAZARUS NE DMARRE PLUS

(a premi)re appli&ation 1 LAZARUS ne dmarre pl6s

1)Sur LINU
Si LAZARUS ne redmarre pas alors alle; dans votre Sdossier personnelS. Dans SA%%i&"ageS S(ontre; les %i&"iers &a&"sS. Alle; dans le dossier S.LAZARUSS p6is dans SbinS. E%%a&e; SLAZARUSS. Si vo6s ne tro6ve; pas l,e?&6table LAZARUS< rinstalle; le pa:6et SLAZARUS1ideS.

')Sur 6IN!O6S
E%%a&e; le %i&"ier SLAZARUS.e?eS. 5l est soit dans SDo&6ments and SettingsS o6 SUsersS< p6is dans votre &ompte 6tilisate6r< p6is dans SLo&al SettingsS< SAppli&ation DataS et SLAZARUSS. -6 bien il est dans SCCeLAZARUSS. Dans &e &as re&opie; l,e?&6table LAZARUS o6 rinstalle; LAZARUS.
I)VRIFIER LES LICENCES

Apr)s avoir tl&"arg vri%ie; l,6tilisation des li&en&es. C"a:6e Composant poss)de des parti&6larits de li&en&e ave& le mot S(odi%iedS o6 6n a6tre mot gnri:6e. Si vo6s ave; tl&"arg des Composants grat6its< voi&i les di%%rents tDpes de li&en&es :6e vo6s po6ve; tro6ver C Pas de So6r&es. Vos &omposants s,installent s6r &ertains LAZARUS. Vo6s n,ave; pas la possibilit de reprendre le pro.et s,il est abandonn. A6&6n %i&"ier de li&en&e C En gnral vo6s %aites &e :6e vo6s vo6le;. Vo6s deve; &onta&ter l,a6te6r po6r d%inir 6ne li&en&e. 2 (a premi)re appli&ation 1 Vri%ier les li&en&es

0PL C Cette li&en&e vo6s oblige > di%%6ser les So6r&es de votre Logi&iel o6 des&endant< si vo6s di%%6se; le Composant< &e&i en annonMant l,a6te6r. Creative Common bD C Cette li&en&e vo6s oblige > annon&er l,a6te6r d6 Composant. !SD C Cette li&en&e enti)rement Libre vo6s a6torise > revendre le Composant< &omme vo6s le vo6le;. Et&. Une li&en&e &ommer&iale< po6r la:6elle vo6s ave; a&"et des Composants< pe6t disposer d,6n ensemble de restri&tions > lire.
J)COMPILATEUR

FREE PASCAL

Le Compilate6r :6i a permis de &rer LAZARUS est a6ssi &el6i 6tilis po6r &rer les programmes. La se6le di%%ren&e est :6,il est semi1 a6tomatis. A6ssi il 6tilise les librairies LAZARUS. Po6r &ompiler s6r LAZARUS et vri%ier son Code &r< app6De; s6r SCtrlS et SF+S en m=me temps. Po6r e?&6ter s6r LAZARUS &li:6e; s6r le bo6ton PlaD U ) o6 s6r SF+S. Vo6s e?&6te; ligne apr)s ligne votre programme et app6Dant s6r SF$S o6 SF2S. Ces to6&"es permettent de voir le Code s,e?&6ter< en regardant vos So6r&es. La to6&"e SF2S passe &ertaines So6r&es. L,6tilisation des to6&"es SF$S et SF2S est %astidie6se. Vo6s po6ve; a.o6ter 6n voire pl6sie6rs points d,arr=ts< en &li:6ant dans votre SRdite6r de So6r&eS< s6r la marge grise d,6ne o6 de pl6sie6rs lignes > vri%ier. Le Compilate6r FREE PASCAL &re des %i&"iers e?&6tables vol6mine6?. Po6r:6oi K (a premi)re appli&ation 1 Compilate6r FREE PASCAL +

Par&e :6e LAZARUS ne dporte pas l,6tilisation des librairies de &"a:6e environnement. A6trement dit votre e?&6table pe6t ne pas 6tiliser les librairies :6e vo6s ave; 6tilises po6r &rer l,e?&6table. Un e?&6table LAZARUS a de tr)s grandes &"an&es de %on&tionner se6l. A6ssi LAZARUS< en version 3.+.*3< pe6t a.o6ter des 6nits< lies par les pa:6ets< :6e vo6s n,6tilise; pas dans votre e?&6table.
K)GESTION DES ERREURS

Dans votre Logi&iel< le dveloppe6r et l,6tilisate6r doivent =tre g6ids. Des erre6rs pe6vent se prod6ire dans le Code servant a6 dveloppement< o6 dans &el6i servant > l,6tilisate6r. En gnral les erre6rs de dveloppement doivent =tre en anglais< tandis :6e les erre6rs de l,6tilisate6r sont m6ltiling6es. Anti&ipe; &e :6i va se passer dans votre programme. 5magine; 6n 6tilisate6r tombant s6r 6ne erre6r en anglais< alors :6,il ne &onnaLt pas &ette lang6e. En pl6s< est n&essaire 6n man6el de l,6tilisate6r< permettant de tro6ver les in%ormations n&essaires > l,6tilisation d6 Logi&iel.
L)LES EXCEPTIONS

Les e?&eptions permettent de grer les erre6rs< o6 bien de les rediriger &orre&tement vers l,6tilisate6r. (%ie;1vo6s des Logi&iels :6i rapportent pe6 d,erre6rs. En gnral on ne sait pas &omment les 6tiliser. tr& for iC]3 to 73 do &"aine C] &"aine [ &"aineV e'cept S"o@message U ,La &"aine de mon %orm6laire est trop long6e. 5l n,D /3 (a premi)re appli&ation 1 Les e?&eptions

a pl6s asse; de mmoire., )V end; Cette gestion d,e?&eption &ommen&e > StrDS et %init > SendS. La partie entre StrDS et Se?&eptS rapporte vers la partie entre Se?&eptS et SendS l,erre6r vent6elle. Dans &ette gestion d,e?&eption on ind6it :6,6ne erre6r prod6ite est d6e a6 man:6e de mmoire. Voi&i la m=me gestion d,e?&eption mie6? &onstr6ite C tr& for iC]3 to 73 do &"aine C] &"aine [ &"aineV e'cept (n ECE-6t-%(emorD do S"o@message U ,La &"aine de mon %orm6laire est trop long6e. 5l n,D a pl6s asse; de mmoire., )V (n ECE?&eption do S"o@message U,Erre6r ave& la &"aine. Le rs6ltat pe6t =tre tron:6.,)V end; L,instr6&tion de l,e?&eption S ECE-6t-%(emorDS est appele :6and il n,D a pl6s asse; de mmoire. Cette e?&eption se prod6it en gnral ave& les manip6lations de tablea6? > long6e6r variable. L,instr6&tion de l,e?&eption S-n ECE?&eption doS< s6ivie de sa gestion< r&6p)re to6tes les erre6rs d,e?&eption prod6ites. Si elle est se6le< elle pe6t =tre l6de. C,est po6r:6oi on pla&e 6ne e?&eption< "rite a6 dess6s de l,e?&eption an&=tre< lors:6,on 6tilise &e genre de gestion d,e?&eption.

(a premi)re appli&ation 1 Les e?&eptions

/'

1)Ren7o8er )es e,(eptions


A6 dpart les erre6rs pe6vent s,adresser > soi. (ais > %or&e d,6tiliser son Logi&iel on red%init les e?&eptions po6r l,6tilisate6r. Dans 6n Code r6tilis il pe6t =tre intressant de renvoDer l,e?&eption vers le programme< a%in :6e l6i se6l g)re le message > donner > l,6tilisate6r. Le mot &l SraiseS permet de renvoDer 6ne erre6r vers l,6tilisate6r. t&pe EStringBooLarge C E-6t-%(emorD; begin if lengt" U &"aine ) \ '333 % en raise U EStringBooLarge ); for iC]3 to 73 do &"aine C] &"aine [ &"aine; end; Voi&i la m=me gestion d,erre6r :6e pr&demment< mais dans 6n Code So6r&e r6tilis. -n anti&ipe to6.o6rs s6r le dveloppe6r< en r6tilisant a6 mie6? l,4ritage des erre6rs. 5l est possible d,6tiliser les e?&eptions de LAZARUS e?istantes po6r &e :6e l,on so6"aite rediriger. C,est d,aille6rs re&ommand. Prati:6er la veille te&"nologi:6e permet de voir si son erre6r n,a pas t a.o6te< ave& 6ne no6velle version de son Jit de dveloppement.

/7

(a premi)re appli&ation 1 Les e?&eptions

(a premi)re appli&ation 1 Les e?&eptions

/*

F)L%OB9E#
CREAB5VE C-((-G !H SA
A)INTRODUCTION

La programmation oriente -b.ets permet< dans LAZARUS< de raliser vos propres Composants< votre savoir1%aire. Ave& l,-b.et< elle permet a6ssi de raliser des Logi&iels &omple?es. Ce &"apitre et les de6? &"apitres s6ivants sont &omplmentaires. 5ls doivent =tre bien &ompris a%in de s6rpasser les &apa&its d6 programme6r. Dans &e &"apitre no6s allons d%inir &e :6,est l,-b.et. Cela va permettre de mie6? &omprendre LAZARUS< don& de s6blimer &et o6til par l,a6tomatisation RAD. LAZARUS est 6n o6til de Dveloppement Rapide d,Appli&ations< abo6tissement de l,6tilisation de la programmation oriente -b.ets. Si vo6s ne &onnaisse; pas l,-b.et vos Composants sont mal %aits. 5l e?iste des r)gles simples et des ast6&es permettant de raliser vos Composants. Go6s allons dans &e &"apitre vo6s parler simplement de l,-b.et. Rto%%e; vos &onnaissan&es ave& des livres s6r l,analDse -b.et< analDse pro&"e de l,"6main. Elle n&essite d6 travail et de la te&"ni:6e. Go6s parlons s6&&in&tement des relations en -b.et dans le &"apitre s6r les )ogiciels centralis*s. C"a:6e Compilate6r poss)de des sp&i%i&its o6 amliorations< po6r %a&iliter le travail d6 dveloppe6r. Go6s vo6s les e?pli:6ons.

L,-b.et 1 5ntrod6&tion

B)UN

OBJET

Un -b.et est 6ne entit interagissant ave& son environnement. Par e?emple votre S&lavierS d,ordinate6r est 6n -b.et. Ce S&lavierS poss)de des Sto6&"esS :6i pe6vent a6ssi =tre des -b.ets Sto6&"eS. Vo6s voDe; :6,il est possible de d%inir 6n -b.et SBo6&"eS o6 6n -b.et SBo6&"esS. Pr%re; l,6ni&it en mettant en tablea6 votre -b.et SBo6&"eS a6 sein de votre -b.et SClavierS. Vo6s &re; 6n attrib6t a6 sein de votre -b.et SBo6&"eS.
C)UNE CLASSE

Ave& la notion de programmation par -b.ets< 6ne mt"ode de programmation pro&"e de l,"6main< il &onvient d,non&er la notion de &lasse. Lors d6 to6t premier e?emple on avait d&lar 6ne &lasse dans le premier &"apitre< en &rant 6n %orm6laire "rit de la &lasse SBFormS. Cette notion de &lasse est prsente dans le FREE PASCAL. Elle a t a.o6te a6 PASCAL standard. Ce :6e l,on a p6 nommer .6s:6,> prsent -b.et est< po6r FREE PASCAL< 6ne &lasse d,-b.et. 5l s,agit don& d,6n tDpe FREE PASCAL. L,-b.et FREE PASCAL est 6ne instan&e de &lasse< pl6s simplement 6n e?emplaire d,6ne &lasse< son 6tilisation en mmoire ave& la possibilit d,=tre d6pli:6. -n pe6t remar:6er :6e FREE PASCAL d%init 6ne &lasse &omme 6n -b.et UtDpe S&lasseS) o6 &omme 6n enregistrement UtDpe Sre&ordS). L,enregistrement re&ord ne permet :6e de d%inir des mt"odes. La &lasse est l,-b.et analDti:6e po6vant agir a6to6r de l6i. L,-b.et 1 Une &lasse //

Une &lasse a&&epte l,instr6&tion S@it"S< Vo6s po6ve; 6tiliser S@it"S en prenant garde< to6te%ois< a6? variables o6 mt"odes identi:6es< dans des entits di%%rentes.
D)UNE INSTANCE D'OBJET

Une instan&e d,-b.et en U(L est 6n -b.et en mmoire en FREE PASCAL. L,-b.et en U(L est 6ne &lasse d,-b.et en FREE PASCAL. Le PASCAL -b.et permet de &rer des 5nstan&es d,-b.ets. Une 5nstan&e d,-b.et &,est 6n -b.et mis dans la mmoire de l,ordinate6r< > l,e?&6tion. Une 5nstan&e d,-b.et pe6t =tre d6pli:6e. Elle est a6ssi personnalise grE&e > ses variables. Si votre Classe d,-b.et et ses Classes parentes ne &ontiennent a6&6ne variable< il est n&essaire de se poser la :6estion de le6r 6tilit. P6is1.e gagner d6 temps en &rant 6ne 6nit de %on&tions > la pla&e K Vo6s &re; votre -b.et< :6i est instan&i 6ne o6 n %ois en e?&6tion. Par e?emple les %orm6laires prennent bea6&o6p de pla&e en mmoire don& on les instan&ie en gnral 6ne %ois. Les variables simples de votre -b.et sont d6pli:6es et initialises > ;ro< po6r &"a:6e 5nstan&e &re.

1)Les attri/uts et propri&t&s


De6? -b.ets SClavierS pe6vent =tre %aits de la m=me mani)re< ave& 6ne &o6le6r di%%rente. Ce sont to6.o6rs de6? -b.ets SClavierS ave& 6n /# L,-b.et 1 Une 5nstan&e d,-b.et

attrib6t di%%rent. Un attrib6t pe6t =tre 6ne &o6le6r< 6n nombre< d6 te?te< o6 bien 6n a6tre -b.et. Se6lement en FREE PASCAL les attrib6ts< nomms variables< pe6vent =tre enregistrs dans l,ED5 &omme des proprits. Ces variables sont alors sa6ves dans l,-b.et SBFormS< visible en e?&6tion< o6 le SBData(od6leS invisible. D)s :6e vo6s modi%ie; 6n %orm6laire LAZARUS vo6s 6tilise; l,-b.et. Se6lement &es -b.ets n,ont pas besoin de l,ED5< po6r &"arger le6rs proprits > l,e?&6tion. Une partie d6 Code So6r&e de dveloppement est e?&6t. A6 db6t d6 livre 6n %orm6laire possdait des proprits permettant d,a6tomatiser %a&ilement le dveloppement. Les proprits manip6lables dans l,S5nspe&te6r d,-b.etsS sont d6 Code So6r&e servant 6ni:6ement a6 dveloppement. Elles vo6s ont permis de gagner bea6&o6p de temps< dans la &ration de votre premier Logi&iel LAZARUS. Les dveloppe6rs LAZARUS ont soigne6sement spar les 6nits d,dition de proprits< servant a6 dveloppement d6 Code So6r&e e?&6t. Les -b.ets< ditant les proprits dans l,S5nspe&te6r d,-b.etsS< ne sont pas in&l6es dans votre e?&6table. Lors:6e vo6s &on&evre; votre premier Composant< il %a6dra a6ssi sparer le Code So6r&e de dveloppement d6 Code So6r&e e?&6t. Vo6s ne deve; .amais lier dans vos pro.ets dire&tement vers 6ne 6nit d,enregistrement de Composants< p6is:6,elle ne sert :6,> LAZARUS. C,est po6r &ette raison :6e des 6nits< sp&i%i:6es > l,enregistrement des Composants< sont > part des 6nits de Composants.

L,-b.et 1 Une 5nstan&e d,-b.et

/$

Le Code Source ex!cut! peut )tre s!par! de la conception

')Un attri/ut $ans LAZARUS


Dans les &lasses LAZARUS< les attrib6ts se d&larent avant les mt"odes. Une mt"ode est 6ne %on&tion o6 pro&d6re a6 sein d,6ne &lasse. t&pe BForm' ] class U BForm ) (on!o6ton C B!6tton V public constructor Create U A-@ner C BComponent ) V end; L,attrib6t S(on!o6tonS &re 6n -b.et bo6ton. L,attrib6t d6 tDpe bo6ton sert > &rer 6n bo6ton< dans le %orm6laire BForm'.

/2

L,-b.et 1 Une 5nstan&e d,-b.et

+)Une propri&t& $ans LAZARUS


t&pe BForm' ] class U BForm ) (on!o6ton C B!6tton V procedure -nCli&J(on!o6ton U Sender C B-b.e&t ) V pri$ate FCli&J!o6ton C !oolean V public constructor Create U A-@ner C BComponent ) V propert& Cli&J!o6ton C !oolean read FCli&J!o6ton +rite FCli&J!o6ton default %alseV end; L,vnement S-nCli&JS d6 bo6ton S(on!o6tonS %ait appel > la mt"ode S-nCli&J(on!o6tonS. L,attrib6t priv SFCli&J!o6tonS ne pe6t =tre l6 dans son des&endant. Ainsi on a&&)de > &et attrib6t par sa proprit p6bli:6e. Ainsi on pe6t trans%ormer la %i&"e en Composant pl6s %a&ilement. La proprit permet d,a&&der a6? attrib6ts dire&tement o6 indire&tement. Vo6s po6rrie; &rer dans la proprit 6ne %on&tion appele getter< et 6ne pro&d6re appele setter< permettant de prparer l,attrib6t avant de l,6tiliser. La proprit SCli&J!o6tonS permet i&i de ne pas avoir > d%inir de getter et setter a%in d,a&&der a6 &li:6e de bo6ton. Ainsi 6n getter o6 setter pe6vent =tre a.o6ts ens6ite > la proprit. Le Code So6r&e n,est :6e tr)s pe6 &"ang. -n vo6s montre les di%%rentes options de d&laration de proprits. FCli&J!o6ton doit =tre initialis > S%alseS< dans le Constr6&te6r de la L,-b.et 1 Une 5nstan&e d,-b.et /+

%i&"e. En e%%et< la d&laration SpropertDS ne permet pas d,initialiser de vale6r par d%a6t. Une d&laration n,agit pas en gnral.

-)Les m&tho$es et &7&nements


Le &lavier agit. 5l poss)de alors des mt"odes in%l6enMant ses attrib6ts o6 d,a6tres -b.ets. -n po6rrait &rer 6ne mt"ode d,app6i s6r 6ne to6&"e :6el&on:6e. La mt"ode est 6ne pro&d6re o6 6ne %on&tion &entralise dans 6n -b.et. Une mt"ode modi%ie les attrib6ts o6 variables d6 programme. Se6lement en FREE PASCAL il D a pl6s adaptable :6e la mt"ode. L,vnement permet de renseigner rapidement to6t -b.et. Ainsi on ne &re pas l,-b.et SClavierS. LAZARUS va %a&ilement propager des vnements dans le %orm6laire de votre pro.et< p6is dans &"a:6e -b.et de %orm6laire. C"a:6e -b.et poss)de alors 6ne mt"ode &aptant le &lavier. Vo6s po6ve; renseigner les di%%rents vnements &lavier dans l,S5nspe&te6r d,-b.etsS. Ces vnements sont a&&essibles a6ssi< a6 sein des di%%rents -b.ets< grE&e > des mt"odes. L,vnement &onsiste > trans%ormer 6ne mt"ode en variable< po6r po6voir< &omme les proprits< trans%rer %a&ilement 6n vnement > 6n a6tre -b.et.
E)LES COMPORTEMENTS DE L'OBJET

L,-b.et est< &ontrairement a6? langages pro&d6ra6?< pl6s pro&"e de l,"omme :6e de la ma&"ine. 5l permet de raliser des sDst)mes "6mains #3 L,-b.et 1 Les &omportements de l,-b.et

pl6s %a&ilement. L,-b.et tant pl6s pro&"e des reprsentations "6maines il &omple?i%ie a6 minim6m le travail de la ma&"ine en l,organisant en -b.ets. Un -b.et poss)de trois proprits %ondamentales C L,4ritage L,En&aps6lation Le PolDmorp"isme L,-b.et pe6t =tre reprsent s&"mati:6ement grE&e > 6ne boLte > o6tils nomme U(L. 5l e?iste des Logi&iels Libres permettant de &rer des s&"mas -b.ets< &omme SBAR U(L o6 B-P CASED.
F)L'HRITAGE

Les %orm6laires LAZARUS 6tilisent l,-b.et. Vo6s voDe; 6ne d%inition d,6n tDpe -b.et< dans &"a&6ne des 6nits de votre %orm6laire. Vo6s ave; don& 6tilis de l,-b.et sans le savoir. Un tDpe -b.et se d&lare de &ette mani)re C t&pe BForm' ] class U BForm ) end; -n &re i&i 6ne no6velle &lasse :6i "rite de la &lasse SBFormS. Vo6s po6ve; app6Der s6r SCtrlS <p6is &li:6er s6r SBFormS< po6r aller s6r la d&laration d6 tDpe SBFormS. Vo6s ne voDe; alors :6e des proprits< &ar SBFormS "rite l6i a6ssi de SBC6stomFormS< et&. Gotre %orm6laire se &re don& grE&e > l,-b.et SBFormS. Cet -b.et poss)de la parti&6larit de grer 6n %i&"ier Sl%mS< &ontenant les -b.ets visibles dans la &on&eption d6 %orm6laire. Votre %orm6laire est &ompris par LAZARUS par le pro&d de l,4ritage. 5l n,6tilise :6e rarement to6tes les possibilits d6 tDpe L,-b.et 1 L,4ritage #'

%orm6laire s6r&"arg. Vo6s po6rrie; don& 6tiliser 6n a6tre tDpe des&endant de SBFormS po6r votre %orm6laire. Cependant to6t Composant LAZARUS est "rit d6 Composant le pl6s pro&"e de son rs6ltat demand. -n pe6t don& "riter votre %orm6laire d6 Composant SBC6stomFormS si &ertaines proprits g=nent. Vo6s po6ve; regarder :6e &es de6? -b.ets ne di%%)rent :6e par la visibilit de le6rs proprits< &ar SBFormS "rite de SBC6stomFormS. Vo6s voDe; des d&larations de variables dans l,-b.et SBFormS. Certaines variables< &omme les -b.ets< sont mises en mmoire par le Constr6&te6r d6 %orm6laire. Vo6s ne voDe; en gnral pas de Constr6&te6r dans 6n %orm6laire des&endant de SBFormS. En e%%et LAZARUS met a6tomati:6ement en mmoire vos variables de Composants< d&lares grE&e > &"a:6e %i&"ier S.l%mS &r. Ce %i&"ier S.l%mS< &,est votre %orm6laire vis6ellement modi%iable< grE&e > la so6ris et > l,S5nspe&te6r d,-b.etsS.
G)LA SURCHARGE

La s6r&"arge &onsiste dans l,4ritage > modi%ier le &omportement d,6ne mt"ode s6r&"arge. Par e?emple< on pe6t "riter de l,-b.et SBFormS< a%in de s6r&"arger la mt"ode SDoCloseS. Cette mt"ode s6r&"arge &ontient le &omportement sp&i%i:6e de to6tes les %i&"es :6e l,on 6tilise. Ainsi< dans 6n Composant "ritant de SBFormS< on pe6t a6tomatiser la %ermet6re de ses %orm6laires. 5l D a moins de Code p6is:6e la %ermet6re est dans 6n se6l -b.et.

#7

L,-b.et 1 La s6r&"arge

1)Le mot ()& *7irtua)*


Par d%a6t to6te mt"ode d&lare ne pe6t =tre s6r&"arge. Une mt"ode est don& par d%a6t stati:6e &ar il est impossible de la s6r&"arger. En e%%et 6ne mt"ode stati:6e ne pe6t :6,=tre l6de< pas s6r&"arge. Po6r :6,6ne mt"ode p6isse =tre modi%ie par ses "riti)res< a.o6te; le mot &l Svirt6alS. Si vo6s s&r6te; la to6te premi)re d&laration de la mt"ode DoClose vo6s tro6ve; ainsi &ette So6r&e dans la premi)re d&laration de DoClose C procedure DoCloseUvar CloseA&tionC BCloseA&tion)V $irtual; -n pe6t a6ssi 6tiliser &ette d&laration C procedure DoCloseUvar CloseA&tionC BCloseA&tion)V d&na,ic; 5l est pr%rable d,6tiliser la d&laration Svirt6alS. En e%%et &ette d&laration %avorise la vitesse< pl6s importante :6e la taille en mmoire ave& SdDnami&S. 5l e?iste d,a6tres moDens po6r gagner de l,espa&e. Go6s vo6s les &itons dans le &"apitre s6r les Composants.

')Le mot ()& *o7erri$e*


Po6r s6r&"arger 6ne mt"ode virt6elle< a.o6te; &ette So6r&e dans 6ne &lasse des&endante. Vo6s po6ve; par e?emple a.o6ter &e Code So6r&e dans to6t %orm6laire C procedure DoCloseUvar CloseA&tionC BCloseA&tion)V o$erride;

L,-b.et 1 La s6r&"arge

#*

Cette d&laration dans le %orm6laire est identi:6e > l,a%%e&tation de l,vnement S-nCloseS de votre %orm6laire< "rit de SBFormS. Se6lement &rer &ette mt"ode permet de &rer 6n Composant personnalis< "rit de SBFormS. 5l s6%%it d,app6Der en m=me temps s6r SCtrlS< p6is SS"i%tS< p6is SCS po6r &rer le Code So6r&e > a6tomatiser. &ette So6r&e est ainsi &r C procedure BForm'.DoCloseU$ar CloseA&tionC BCloseA&tion)V begin in erited DoCloseUCloseA&tion)V end; Ainsi< lors:6e to6t -b.et Propritaire de SDo&loseS appelle &ette mt"ode< on appelle d,abord la mt"ode SDo&loseS a6 dess6s de to6tes< :6i pe6t vent6ellement appeler les mt"odes as&endantes SDoCloseS< par le mot &l Sin"eritedS. C"oisisse; to6.o6rs d,6tiliser le mot &l Sin"eritedS< lors:6e vo6s s6r&"arge; votre mt"ode. Sinon votre programme bo6&le > l,in%ini. Vo6s po6rrie; &rer 6n Composant "rit de SBFormS< ave& vos options de %ermet6re de %orm6laires. Ainsi d6 Code So6r&e ne serait pl6s d6pli:6.
H)L'ENCAPSULATION

Go6s venons de voir< par la s6r&"arge< le pro&d de l,En&aps6lation. L,En&aps6lation permet de &a&"er des &omportements d,6n -b.et< a%in d,en &rer 6n no6vea6. L,En&aps6lation e?iste d.> dans les langages pro&d6ra6?. Vo6s po6ve; d.> r6tiliser 6ne %on&tion o6 pro&d6re< en a%%e&tant le m=me # L,-b.et 1 L,En&aps6lation

nom > la no6velle %on&tion o6 pro&d6re< dans 6ne no6velle 6nit< :6i r6tilise la %on&tion o6 pro&d6re. Se6lement vo6s 6tilise; le nom de l,6nit po6r disting6er les de6? %on&tions o6 pro&d6res. -n po6rrait ainsi appeler la %on&tion o6 pro&d6re imbri:6e &omme l,original. -n po6rrait don& se tromper %a&ilement de %on&tion o6 pro&d6re identi:6e< en l6dant 6ne 6nit. L,En&aps6lation en PASCAL non -b.et est don& appro?imative. En e%%et on vite de &rer les m=mes noms de %on&tions o6 pro&d6res< &ar &ela &re des &on%lits sans %or&ment :6e l,on s,en aperMoive. A6 travers des 6nits et a6tres librairies< l,En&aps6lation est amliore ave& FREE PASCAL en -b.et. L,intr=t de l,En&aps6lation est s6btil et "6main. Si vo6s &re; 6n des&endant d,6n bo6ton en s6r&"argeant la mt"ode SCli&JS< a%in de &rer 6n vnement &entralis< et :6e vo6s 6tilise; &e bo6ton dans votre %orm6laire< vo6s vo6s aper&eve; :6e vo6s ne po6rre; .amais appeler la mt"ode SCli&JS de ses an&=tres. A6trement dit l,En&aps6lation permet de modi%ier lg)rement le &omportement d,6n -b.et a%in d,en &rer 6n no6vea6< rpondant mie6? > &e :6e l,on &"er&"e. -n pe6t "riter d6 Composant a61dess6s< si l,on ve6t 6tiliser la no6velle gestion< l6dant l,an&ienne< par le no6vea6 Composant. A6trement dit< on s,aperMoit i&i :6e la programmation -b.et demande pl6s de mmoire :6e la programmation pro&d6rale. En e%%et il est possible d,l6der le Code So6r&e de la mt"ode en&aps6le. Cependant l,-b.et permet de gagner d6 temps dans le dveloppement< grE&e > l,a6tomatisation des sDst)mes "6mains< p6is in%ormati:6es. L,-b.et permet a6ssi de maintenir pl6s %a&ilement le Code So6r&e &r. Ave& LAZARUS< to6t -b.et Composant -pen So6r&e d,6n %orm6laire L,-b.et 1 L,En&aps6lation #/

est &ons6ltable< par simple &li& de so6ris< grE&e > l,inspe&te6r d,-b.et. Une variable ne pe6t pas =tre =tre "rite< mais pe6t =tre de no6vea6 d&lare. Cependant l,an&ienne variable prend alors la pla&e rserve > son pointe6r > l,e?&6tion. 5l est m=me possible :6e vo6s ne p6issie; emp=&"er le Constr6&te6r de la variable de mettre en mmoire ses a6tres variables< s,il s,agit d,6ne &lasse. P6and trop de variables %antNmes sont prsentes dans l,an&ien Composant "rit< demande;1vo6s s,il est 6tile de &rer 6n no6vea6 Composant< "ritant d,6n des Composants as&endants. En e%%et les variables %antNmes sont en mmoire< en partie< dans &"a:6e instan&e de &lasse.

1)La $&()aration *pri7ate*


Une mt"ode SprivateS ne pe6t pas =tre s6r&"arge. Une variable prive n,est a&&essible dans a6&6n des&endant. -n ne pe6t a&&der > 6ne mt"ode< o6 6ne variable SprivateS< :6e dans l,-b.et la possdant. Alle; s6r la d&laration de SBFormS C BC6stomForm ] class-BS&rollingAinControl! pri$ate FA&tiveControlC BAinControlV procedure SetA&tiveControlUAAinControlC BAinControl)V publis ed propert& A&tiveControlC BAinControl read FA&tiveControl +rite SetA&tiveControlV end; Vo6s voDe;< dans les So6r&es de LAZARUS< :6e bea6&o6p de ## L,-b.et 1 L,En&aps6lation

variables sont d&lares en prives. Elles sont to6t de m=me a&&essibles dans l, S5nspe&te6r d,-b.etsS< so6s 6n a6tre nom. So6vent< il s6%%it d,enlever la premi)re lettre de la variable< po6r la retro6ver dans l,S5nspe&te6r d,-b.etsS. Des d&larations prives sont 6tilises grE&e a6? getters et setters< e6? a6ssi privs< a%in d,=tre visibles dans l,S5nspe&te6r d,-b.etsS. La d&laration SprivateS permet de regro6per les variables< ave& les SgettersS et les SsettersS des proprits &res. Un SsetterS est 6ne a%%e&tation d,6ne variable< &ontenant gnralement son nom< initialisant 6ne partie d6 Composant. Le SgetterS %ait de m=me< en lisant &ette %ois la variable prive< &onten6e dans son libell. Ainsi le programme6r ne se trompe pas lors:6,il r6tilise la variable. 5l 6tilise la proprit d&lare par SpropertDS< d%inissant d,vent6els SgettersS et SsettersS< permettant d,initialiser le Composant en a%%e&tant la variable. Vo6s voDe; des proprits dans les Composants LAZARUS.

')La $&()aration *prote(te$*


Une mt"ode Sprote&tedS ne pe6t =tre s6r&"arge :6e dans l,6nit de l,-b.et< vers les -b.ets "rits. S6r&"arger 6n Composant permet don& d,a&&der a6? mt"odes o6 variables protges< a%in de modi%ier le &omportement d,6n Composant. Le tDpe SBForm'S pe6t a&&der a6? mt"odes et variables Sprote&tedS de SBFormS et de ses as&endants. Par &ontre &e tDpe ne pe6t pas a&&der a6? mt"odes et variables protges des Composants non "rits< en de"ors de son 6nit. -n met dans la ;one Sprote&tedS les mt"odes de %on&tionnement d6 L,-b.et 1 L,En&aps6lation #$

Composant< po6vant =tre s6r&"arges< a%in d,=tre modi%ies dans 6n 4ritage. Si on ne sait pas &omment mettre 6ne mt"ode dans la ;one SprivateS o6 Sprote&tedS il est pr%rable de pla&er sa mt"ode dans la ;one Sprote&tedS.

+)La $&()aration *pu/)i(*


Une mt"ode Sp6bli&S pe6t =tre appele dans to6t le Logi&iel :6i l,6tilise. Une variable et 6ne mt"ode p6bli:6es sont to6.o6rs a&&essibles. Ainsi 6n Constr6&te6r est to6.o6rs dans la ;one Sp6bli&S de sa &lasse. Si vo6s ne save; pas mettre 6ne mt"ode en Sp6bli&S o6 en Sprote&tedS< &"er&"e; si votre mt"ode est 6tilise pl6tNt par le dveloppe6r 6tilisate6r en Sp6bli&S< :6e par le dveloppe6r de Composants en Sprote&tedS. Le dveloppe6r de Composants modi%ie les %a&6lts de votre Composant.

-)La $&()aration *pu/)ishe$*


Une mt"ode Sp6blis"edS pe6t =tre appele dans to6t le Logi&iel :6i l,6tilise. Une variable et 6ne mt"ode p6blies sont to6.o6rs a&&essibles. Vo6s voDe; dans vos Composants :6e les proprits Sp6blis"edS sont visibles dans l,inspe&te6r d,-b.et de LAZARUS. La d&laration Sp6blis"edS< et les proprits dnommes par SpropertDS< permettent d,amliorer le PolDmorp"isme d6 PASCAL -b.et. Ce pro&d permet de manip6ler les proprits et mt"odes Sp6blis"edS< sans avoir > #2 L,-b.et 1 L,En&aps6lation

&onnaLtre le6r propritaire. Vo6s po6ve; raliser des pro&ds de le&t6re indpendants d6 tDpe d,-b.et< grE&e > l,6nit SPropEditsS. Ainsi 6ne mt"ode p6blie pe6t =tre appele indpendamment de la &lasse -b.et :6i l,6tilise. Une proprit p6blie est sa6vegarde dans le %orm6laire< a&&essible indpendamment de la &lasse -b.et :6i l,6tilise. Voi&i &omment r&6prer 6ne mt"ode p6blie sans &onnaLtre sa &lasse C .. r*cup/re une propri*t* d0(b1et .. aCo,p2Co,ponent%o3et " Co,posant cible .. as2Na,e " Propri*t* cible .. a24alue%o3et " 4aleur 5 affecter function %metQgetComponent(et"odPropertD U &onst aCompQComponent C BComponent V &onst asQGame C String ) C B(et"od ; Begin if assigned U 0etProp5n%o U aCompQComponent< asQGame )) and Prop5sBDpe U aCompQComponent< asQGame < tJ(et"od) t en Res6lt C] 0et(et"odProp U aCompQComponent< asQGame !; End ;

Cette mt"ode permet de r&6prer to6te mt"ode p6blie S asQGameS de to6t Composant. 5l s6%%it ens6ite de %or&er le tDpe de votre vnement. Par e?emple C {$,ode DE)P6I} .. Directi$e de co,pilation per,ettant d0enle$er les 7 de pointeurs8 Elle est 5 placer au d*but de l0unit* 4ar (onCli&J C BGoti%DEvent V Begin (onCli&J C]BGoti%DEvent U %metQgetComponent(et"odPropertD L,-b.et 1 L,En&aps6lation #+

U AComponent < ,-nCli&J, ))V i% assigned U (onCli&J ) B"en (onCli&J U A&omponent )V End; Cette So6r&e permet d,e?&6ter to6t vnement S-nCli&JS de to6t Composant< s,il est p6bli. Dans l,inspe&te6r d,-b.et vo6s po6ve; voir a6ssi des vnements. Les vnements sont 6n appel vers 6ne mt"ode< grE&e > 6ne variable de mt"ode. Le tDpe de la variable mt"ode permet d,a%%e&ter des param)tres > 6ne mt"ode. Go6s avons d.> 6tilis les vnements dans 6n &"apitre pr&dent. Un vnement est 6ne d%inition en variable d,6ne mt"ode. 5l est &ependant possible d,a&&der > 6ne mt"ode p6blie< sans avoir > 6tiliser l,vnement< en 6tilisant le tDpe SB(et"odS. Ce tDpe permet d,a&&der > 6ne mt"ode p6blie dans 6n Composant. {$9ode DE)P6I} $ar lmetQ(et"odeDistrib6eeSear&"C B(et"odV Begin lmetQ(et"odeDistrib6eeSear&".Data C] Sel% V lmetQ(et"odeDistrib6eeSear&".Code C] (et"odAddressU,(a(et"odeP6bliee,) V U lmetQ(et"odeDistrib6eeSear&" as (onBDpe(et"od ) U monparametre ) V End;

Si &e :6e vo6s ave; d%ini n,e?iste pas d.> on d%init 6n tDpe mt"ode ainsi C

$3

L,-b.et 1 L,En&aps6lation

B(a(et"ode ] procedure-const monparametreCBDpeParametre! of ob1ect;

2)Les propri&t&s pu/)i&es


Lors:6,on p6blie 6ne proprit dans 6n Composant r%ren& &elle1&i se retro6ve dans l,inspe&te6r d,-b.et. 5l est pr%rable de &rer 6ne proprit a6 pl6s pro&"e de l,-b.et< en s6r&"arge< voire en parti&ipation Libre< si la modi%i&ation est 6tile po6r la &omm6na6t. Voi&i 6n bo6ton amlior po6r 6ne 6tilisation parti&6li)re C t&pe B(D!6tton ] class U BSpeed!6tton ) pri$ate FCli&J!o6ton C !oolean V function getCli&J!o6tonC!ooleanV public procedure Cli&J V o$erride ; publis ed propert& Cli&J!6tton C !oolean read getCli&J!o6ton +rite FCli&J!o6ton default %alse V propert& 0lDp" stored %alse V end; La proprit SCli&J!6ttonS permet de savoir si le bo6ton a t &li:6. Le getter getCli&J!o6ton permet de rinitialiser FCli&J!o6ton > la le&t6re d6 &li:6e. -n emp=&"e i&i d,enregistrer l,image d6 bo6ton< en s6r&"argeant la L,-b.et 1 L,En&aps6lation $'

d&laration p6blie d6 SBSpeed!6ttonS. Cela permet d,emp=&"er d,enregistrer dans &"a:6e %i&"e l,image :6,on a6rait &"arge. Go6s vo6s e?pli:6ons &ette optimisation dans le &"apitre s6ivant. L,option SstoredS > S%alseS n,enregistre pas la proprit dans l,S5nspe&te6r d,-b.etsS< don& dans l,e?&6table. SstoredS< :6i est > Str6eS par d%a6t< permet l,enregistrement dans l,S5nspe&te6r d,-b.etsS< si votre Composant est dans la palette des Composants.

:)Les Constru(teurs et !estru(teurs


Les variables simples< &omme on l,a v6< se lib)rent a6tomati:6ement. FREE PASCAL ne lib)re pas a6tomati:6ement &ertaines variables< notamment les &lasses -b.ets 6tilises. Un des&endant de BComponent dtr6it a6tomati:6ement les -b.ets de tDpe BComponent< :6i l6i ont t a%%e&ts. Don&< si vo6s 6tilise; 6n des&endant de BComponent dans votre &lasse< il s6%%it< po6r le dtr6ire a6tomati:6ement< d,a%%e&ter le Propritaire d6 Composant< &omme tant votre &lasse d,-b.et. Bo6t des&endant de BComponent pe6t =tre enregistr dans l,S5nspe&te6r d,-b.etsS. Po6r les a6tres &lasses d,-b.et< il est n&essaire d,6tiliser les Constr6&te6rs et Destr6&te6rs< po6r d,abord les initialiser< en%in les librer. Voi&i 6n e?emple de Constr6&te6r et de Destr6&te6r C Interface uses Classes V

$7

L,-b.et 1 L,En&aps6lation

BReadBe?t ] classUBComponent) (onFi&"ierBe?te C BStringlistV public constructor CreateUB"e-@ner C BComponent)V destructor DestroDV end ; i,ple,entation constructor BReadBe?t.CreateUB"e-@ner C BComponent)V begin In erited CreateUB"e-@ner)V (onFi&"ierBe?te C] nilV end ; destructor BReadBe?t.DestroDV begin In erited CreateUB"e-@ner)V (onFi&"ierBe?te.FreeV end; Bo6t -b.et d%ini dans 6ne &lasse doit =tre initialis > SnilS. Le Constr6&te6r initialise le SBStringListS. 5l pe6t alors =tre &r d)s :6,on l,6tilise< grE&e > 6ne mt"ode &entralise. Le Destr6&te6r d6 Composant lib)re les -b.ets mis en mmoire. Ainsi la mt"ode stati:6e SFreeS< de la &lasse SB-b.e&tS< vri%ie si la variable est > SnilS. P6is< s,il n,est pas > SnilS< elle appelle le Destr6&te6r de l,-b.et de tDpe SBStringListS.
I)LE

POL

MORPHISME

Le terme PolDmorp"isme est &ertainement le pl6s redo6t. Po6r le &omprendre< voi&i la smanti:6e d6 mot C SpolDS signi%ie pl6sie6rs et L,-b.et 1 Le PolDmorp"isme $*

Smorp"ismeS signi%ie %orme. Le PolDmorp"isme traite de la &apa&it de l,-b.et > possder pl6sie6rs %ormes. Cette &apa&it drive dire&tement d6 prin&ipe d,4ritage< v6 pr&demment. En e%%et< 6n -b.et "rite des &"amps et mt"odes de ses an&=tres. -n pe6t red%inir 6ne mt"ode< a%in de la r&rire o6 de la &omplter. Le &on&ept de PolDmorp"isme permet de &"oisir< en %on&tion des besoins< :6elle mt"ode an&=tre appeler. Le &omportement d,6n -b.et polDmorp"e devient don& modi%iable > volont. Le PolDmorp"isme est don& la &apa&it d6 sDst)me > &"oisir dDnami:6ement la mt"ode de l,-b.et en &o6rs. -n &onsid)re 6n -b.et V"i&6le et ses des&endants !atea6< Avion< Voit6re. Ces -b.ets poss)dent to6s 6ne mt"ode Avan&er< le sDst)me appelle la %on&tion Avan&er sp&i%i:6e< s6ivant :6e le v"i&6le est 6n !atea6< 6n Avion o6 bien 6ne Voit6re. :ttention ; Le &on&ept de PolDmorp"isme en orient -b.et ne doit pas =tre &on%ond6 ave& &el6i d,4ritage m6ltiple en -b.et p6r. L,4ritage m6ltiple n,est pas s6pport par le FREE PASCAL. 5l permet > 6n -b.et d,"riter des &"amps et mt"odes de pl6sie6rs -b.ets > la %ois. Le PolDmorp"isme permet de modi%ier le &omportement d,6n -b.et et &el6i de ses des&endants a6 &o6rs de l,e?&6tion. L,4ritage m6ltiple poss)de l6i a6ssi ses d%a6ts. 5l est en&ore pl6s lo6rd en mmoire :6e le PolDmorp"isme en orient -b.et.

L,-b.et 1 Le PolDmorp"isme

1)L%A/stra(tion
L,Abstra&tion ne sert< en FREE PASCAL< :6,> &entraliser pl6sie6rs -b.ets< en "ritant d,6n -b.et abstrait don& pas 6tilisable. Cet -b.et abstrait poss)de en %ait des mt"odes dites SabstraitesS o6 Sabstra&tS< non implmentes dans l,-b.et abstrait. Voi&i > :6oi l,Abstra&tion ressemble dans 6ne &lasse d,-b.et C procedure GagerV abstract; Cette d&laration est la se6le > ne pas demander d,implmentation. Elle &re 6ne erre6r malgr to6t< > l,e?&6tion< si son des&endant n,implmente pas la mt"ode SGagerS. Ainsi l,-b.et abstrait :6i nage n,a pas besoin de savoir &omment il nage. Les di%%rents des&endants nagent en %on&tion d6 tDpe &lasse &r. Une &lasse SPoissonS nage en os&illations "ori;ontale. Une &lasse S46mainS nage en brasse< en &ra@le< en papillon< et&. -n &re don& dans la &lasse 46main des mt"odes se&ondaires. 5l reste > d%inir &omment on &"oisit le tDpe de nage en %on&tion de l,-b.et &r. -n pe6t d%inir le tDpe de nage grE&e > 6n nombre en param)tre.

')Le t8pe *inter.a(e*


Le tDpe Sinter%a&eS est le PolDmorp"isme en FREE PASCAL en son essen&e. 5l est impossible d,"riter de de6? &lasses voire pl6s. Utilise; le tDpe Sinter%a&eS< po6r remdier > &e probl)me. Une &lasse FREE PASCAL L,-b.et 1 Le PolDmorp"isme $/

"rite d,6ne &lasse< ave&< vent6ellement< 6n ensemble d,inter%a&es. Le tDpe Sinter%a&eS permet de &rer des -b.ets polDmorp"es. 5l pe6t s,a.o6ter > 6n 4ritage. -n &re le tDpe inter%a&e &omme si on &re 6ne &lasse. Cependant il n,est possible :6e d,D a.o6ter des mt"odes abstraites. Go6s parlons d6 tDpe Sinter%a&eS dans le &"apitre s6ivant.

+)Po)8morphe a7e( )es propri&t&s pu/)i&es


Go6s avons v6< pr&demment< :6,il est possible d,appeler n,importe :6el vnement S-n&li&JS< de n,importe :6el Composant. Le tDpe &lasse o6 -b.et SBFormS< &,est 6n Composant parti&6lier. Le Composant et -b.et SBFormS permettent de &rer d,a6tres -b.ets Composants< > l,aide d,6n %i&"ier ave& l,e?tension S.l%mS. Vo6s po6ve; don& &"anger de Composants dans vos %orm6laires< en &"angeant le tDpe de votre Composant So6r&e vers votre tDpe destination. C"ange; alors le tDpe de votre Composant< > la %ois dans le %i&"ier S.pasS de votre %i&"er< p6is dans le %i&"ier S.l%mS. Bo6t d,abord alle; s6r le %orm6laire > trans%ormer. A.o6te; 6n Composant SBLabelS. Redimensionne;1le. Alle; s6r la d&laration &lasse de sa %orm6laire dans le %i&"ier S.pasS. C"ange; le tDpe de son Composant vers le no6vea6 tDpe de Composant< sans vo6s tromper. Vo6s po6ve; par e?emple l6i a%%e&ter le tDpe SB!6ttonS. Alle; s6r le %orm6laire vis6el et &li:6e; s6r le bo6ton droit dess6s. C"oisisse; SA%%i&"er le So6r&eS. $# L,-b.et 1 Le PolDmorp"isme

Retro6ve; votre Composant en %aisant 6ne re&"er&"e. P6is &"ange; le tDpe par le m=me tDpe SB!6ttonS. Ferme; et ro6vre; le %orm6laire. Des proprits n,e?istent pl6s. LAZARUS demande de les e%%a&er. Votre no6vea6 Composant SB!6ttonS a alors rempla& l,an&ien< ave& les proprits identi:6es de &e dernier. C,est la nomen&lat6re LAZARUS :6i a permis d,adapter les proprits an&iennes< vers le no6vea6 Composant. A6trement dit< avant de &rer 6ne no6velle proprit LAZARUS< il est n&essaire de &onnaLtre les proprits standards de to6t -b.et LAZARUS. Une proprit LAZARUS est en anglais. Les tDpes -b.ets Sinter%a&eS ne permettent pas de d&larer de vritables -b.ets. Elles ne %ont :6e &entraliser la d&laration de mt"odes. Les 6nits de %on&tions permettent de &entraliser le Code. La d&laration Sp6blis"edS et les proprits permettent d,a&&der > d,a6tres Composants< sans avoir > &onnaLtre le6r tDpe S&lasseS o6 Sinter%a&eS. La d&laration Sp6blis"edS et les 6nits de %on&tions rsolvent partiellement le PolDmorp"isme. Elles permettent &ependant 6ne "irar&"isation de vos So6r&es< grE&e a6? pa:6ets.
J)LES PROPRITS

FREE PASCAL poss)de 6ne sDnta?e permettant de &rer des Composants< :6i sont des -b.ets ave& des proprits. Les proprits permettent< si elles sont &orre&tement &res< de mie6? grer le PolDmorp"isme. Les proprits p6blies permettent la rapidit de &on&eption< en tant prsentes dans l,S5nspe&te6r d,-b.etsS.

L,-b.et 1 Les proprits

$$

5l ne %a6t pas =tre &rati% po6r nommer ses proprits. Reprene; &e :6i e?iste d.> a6 sein de LAZARUS< a%in de mie6? grer le PolDmorp"isme. Une proprit doit =tre nomme d6 m=me nom :6e les proprits de m=me nat6re. 5l est don& n&essaire de &onnaLtre les noms des proprits des Composants de m=me nat6re< a%in de &rer des proprits identi:6es.
K)L'UML POUR PROGRAMMER EN

OBJETS

Des o6tils U(L Libres e?istent po6r a6tomatiser la &ration de vos Logi&iels orients -b.ets. U(L en anglais signi%ie Uni%ied (odeling Lang6age< po6r Langage de (odlisation Uni%i. Ainsi to6t o6til U(L pe6t =tre &ompatible ave& d,a6tres o6tils U(L. Vri%ie; &ependant si &,est bien le &as.

1)S#AR U"L
SBAR U(L est 6n o6til Libre don& partag en li&en&e 0GUO0PL. 5l a t %ait so6s DELP45. Vo6s po6ve; don& tenter de le trad6ire vers LAZARUS apr)s avoir vri%i :6e :6el:6,6n ne le %ait pas d.>. Dans &e &as< parti&ipe; a6 pro.et de trad6&tion< :6i pe6t =tre intgr a6 pro.et SBAR U(L.

$2

L,-b.et 1 L,U(L po6r programmer en -b.ets

G)CR;ER SON SA<OIR=FAIRE


CREAB5VE C-((-G !H SA

A)INTRODUCTION

Po6r &rer 6n savoir1%aire respe&te; 6n se6l prin&ipe C Rviter le &opier1 &oller. -n &re don& ave& &ette te&"ni:6e 6n savoir1%aire C A6 db6t il n,D a :6e des 6nits de %on&tions P6is on 6tilise et s6r&"arge des Composants -n &re des pa:6ets de Composants -n o6vre alors sa librairie a6? a6tres AP5 -n a6tomatise les pa:6ets en 6ne librairie La librairie n&essite pe6 de Code > &rer o6 a6&6n
B)CRER DES UNITS DE FONCTIONS

Vo6s po6ve; vo6s a6ssi &rer votre savoir1%aire en &rant d,abord des pro.ets. Po6r &rer &es pro.ets< no6s vo6s apprenons > &entraliser &e :6i a6rait t redondant. Rvite; le &opier1&oller. Vo6s &re; des 6nits de %on&tions en &entralisant 6n Code redondant. Une 6nit de %on&tion &,est 6n regro6pement de %on&tions a6to6r d,6n m=me t")me. Si la %on&tion :6e vo6s a.o6te; n,est pas immdiatement asso&ie > &e t")me< n,"site; pas > en tro6ver 6n no6vea6. -n &re alors 6ne no6velle 6nit.
C)LES

COMPOSANTS

LAZARUS sans les Composants ne serait pas 6tile. LAZARUS permet Crer son savoir1%aire 1 Les Composants $+

de &rer rapidement des Logi&iels grE&e a6? Composants. La programmation par Composants est rapide s6r LAZARUS grE&e > l,S5nspe&te6r d,-b.etsS. Vo6s po6ve; d&6pler votre vitesse de &ration ave& LAZARUS. 5l est re&ommand d,amliorer o6 de &rer des Composants< :6i sont %a&ilement mis en pla&e. Ainsi votre savoir1%aire o6 vos Composants sont &entraliss dans des pa:6ets de Composants< p6is dans 6ne voire pl6sie6rs librairies 6tilisant vos Composants. La librairie &ontient en pl6s des o6tils prparant le travail. Un pa:6et est 6n regro6pement de Composants. Les pa:6ets sont installs rapidement s6r LAZARUS. Les Composants sont visibles dans LAZARUS. Les Composants vis6els sont dire&tement modi%iables dans LAZARUS. Vos 6nits de %on&tions pe6vent ens6ite amliorer des Composants par le pro&d de l,4ritage< o6 par la parti&ipation -pen So6r&e. Vo6s &re; alors votre premier pa:6et< en apprenant l,-b.et. Vos 6nits de %on&tions sont 6tilises et amliores. Vo6s parti&ipe; alors > 6n pro.et -pen So6r&e apr)s avoir vri%i la li&en&e -pen So6r&e. Si la parti&ipation a6 pro.et est re%6se il est n&essaire de s`interpeller s6r l,6tilit de &ette parti&ipation. L,entreprise :6i re%6se la parti&ipation pe6t avoir d,a6tres ob.e&ti%s :6e les vNtres. Vo6s po6ve; alors s6r&"arger le Composant. LAZARUS &,est 6ne inter%a&e %a&ilitant la programmation. Un Composant LAZARUS est mis en pla&e rapidement grE&e > l,S5nspe&te6r d,-b.etsS. Cet inspe&te6r permet d,a%%e&ter les proprits de vos Composants< &omme si vo6s tie; 6n simple 6tilisate6r. Les proprits permettant de dvelopper sont 6n s6pplment a6 %orm6laire o6vert. Elles sont et doivent don& =tre sit6es en de"ors d6 Code So6r&e d,e?&6tion. 23 Crer son savoir1%aire 1 Les Composants

Votre Composant pe6t =tre amlior grE&e > la &omm6na6t. Cela ne vo6s emp=&"e pas par &ontre de to6.o6rs =tre &omptiti% en re&"er&"ant d,a6tres pro.ets > &rer< po6r :6e vos o6 d,a6tres Composants en "ritent.
D)DVELOPPEMENT

TR!S RAPIDE D'APPLICATIONS

Le Dveloppement Br)s Rapide d,Appli&ations &,est l,abo6tissement de to6t savoir1%aire RAD. C,est l,6tilisation de la Programmation -b.et a%in de sparer< &e :6i est demand par le &lient< d6 Logi&iel en l6i1 m=me. -n s6pprime alors 6ne tape de programmation< > savoir la trans&ription de l,analDse en Logi&iel< &ar &elle1&i est a6tomatise par la Programmation -b.et< et les %i&"iers passi%s. Les %i&"iers passi%s &ontenant 6ne analDse d6 Logi&iel sont l6s par le mote6r DBRA< a%in de &rer le Logi&iel. Un Logi&iel &r en Dveloppement Br)s Rapide est to6.o6rs &on%orme > l,analDse< &ar l,analDse &re le Logi&iel. -n &re des 6nits de %on&tions< p6is des Composants regro6ps en pa:6ets LAZARUS< p6is 6ne voire pl6sie6rs librairies. Ces librairies sont indpendantes de LAZARUS< en tant enti)rement a6tomatises grE&e > des %i&"iers. L,abo6tissement est la prise en &ompte de &e :6i est demand par les &lients< en &rant des %i&"iers a6tomatisant la librairie. Ces %i&"iers sont ddis > &e :6i est demand. Ce sont les %i&"iers mtiers. Ces %i&"iers pe6vent =tre a6tomati:6ement &rs par l,analDste. 5l n,D a alors pl6s d,inad:6ation entre l,analDse et le Logi&iel. En e%%et Crer son savoir1%aire 1 Dveloppement Br)s Rapide d,Appli&ations 2'

il est di%%i&ile d,avoir 6ne analDse identi:6e a6 Logi&iel demand< sans servi&e :6alit o6 sans a6tomatisation.
E)INTRTS DU

DTRA

(is > part le gain de temps< s6pprimer 6ne tape de programmation permet d,amliorer a6ssi la :6alit des Logi&iels &rs. L,analDse &orrespond to6.o6rs a6 Logi&iel< p6is:6e l,analDse &re le Logi&iel. Les .e6? de tests sont mis en pla&e po6r le mote6r DBRA 6ni:6ement. (=me si 6n mote6r DBRA n&essite a6 moins 6n ingnie6r dveloppe6r< &e dernier pense %on&tionnalits et prennit d6 sDst)me. Les %i&"iers passi%s pe6vent =tre l6s par d,a6tres mote6rs. 5l est possible de &rer des ForJs de LE-GARD5 s6r d,a6tres langages< grE&e > des Frame@orJs de gestion< ave& %i&"es et relations.
F)CRER UN

FRAMEWORK DTRA

LE-GARD5 est 6n Frame@orJ o6 savoir1%aire DBRA 8AVA< permettant de &rer des Logi&iels de gestion ave& %iabilit. LE-GARD5 6tilise des %i&"iers de des&ription de ses mta1donnes< &es donnes servant > d%inir &omment on 6tilise 6ne :6el&on:6e donne< a%in d,"omogniser les logi&iels< po6r po6voir les &rer pl6s vite. 5l e?iste a6ssi les mod)les de mta1donnes (5CR-S-FB< permettant de d&rire en&ore pl6s d,entits de programmation. 5l e?iste 6n Frame@orJ o6 savoir1%aire DBRA LAZARUS Libre nomm F(L Frames. C,est 6n savoir1%aire ClientOServe6r< :6i &re des appli&ations de gestion s6r A5GD-AS< 0G-(E< o6 9DE. 27 Crer son savoir1%aire 1 Crer 6n Frame@orJ DBRA

5l est possible de &rer son Frame@orJ Aeb de Dveloppement Br)s Rapide< si la &ration de son Logi&iel est rptitive. Ainsi l,a6tomatisation permet de gagner d6 temps< ens6ite. Un Logi&iel de gestion &,est 6n Logi&iel grant des pro&ess6s. 5l est &ompos d,6n lien vers les donnes< de %i&"es< de relations< de %iltres< de statisti:6es< de %e6illes de &al&6l< et&. 5l est simple > modliser don& simple > a6tomatiser. Les Composants o6 pl6gins permettent de &rer 6ne partie d6 Logi&iel selon les sp&i%i&its demandes. Ces Composants o6 pl6gins permettent d,tendre les &apa&its d6 mote6r. 5ls n&essitent 6ne appro&"e > la %ois lmentaire< po6r rpondre > 6ne partie in%ime de la demande< p6is globale po6r =tre in&l6s dans to6te analDse. 5ls sont 6tiliss dans l,ED5 DBRA. 5l s6%%it alors d,6tiliser 6ne ar&"ite&t6re pilote par mod)le< a%in de &entraliser &e genre de Logi&iel dans 6n mote6r &ontenant les Composants. Les Composants sont renseigns par les mod)les analDti:6es< po6vant lire to6te analDse. Les Logi&iels< &rs sans le mote6r DBRA< pe6vent 6ni:6ement renseigner le Composant %orm6laire. Ainsi il D a a6 moins de6? &o6&"es dans 6n mote6r DBRA. Une %ois &ette tape passe les Logi&iels pe6vent =tre en partie trad6its< par le reverse engeenering trad6isant les donnes en 6n db6t de Logi&iel. Vo6s &re; alors la partie dDnami:6e< non in&l6se dans les donnes. -n pe6t &rer 6ne troisi)me &o6&"e< :6i va permettre d,analDser les Logi&iels > mettre en pla&e. 5l est don& possible de &rer des pl6gins< dans les Frame@orJs Rails o6 to6t Frame@orJ de gestion< a%in de permettre le6r a6tomatisation. Crer son savoir1%aire 1 Crer 6n Frame@orJ DBRA 2*

G)CRER UN

COMPOSANT

Go6s allons &"anger la &o6le6r d,6n bo6ton de %ermet6re< et l6i a%%e&ter 6ne image. Po6r to6t bo6ton &r< sera a%%e&te 6ne se6le image. Ainsi l,e?&6table est pl6s lger. Ce bo6ton permet de %ermer 6n %orm6laire. Le Composant :6i va =tre &r va don& rpondre > 6ne demande te&"ni:6e C La taille de l,e?&6table et la &entralisation des So6r&es. La &entralisation des So6r&es va permettre de rpondre > l,a6tomatisation de son savoir1%aire. Cela va don& permettre de rpondre pl6s rapidement > la demande d6 &lient. Po6r &rer votre pa:6et personnalis Faire SFi&"ierS p6is SGo6vea6S p6is SPa:6etS.

Cr!er un nouveau paquet dans l'"EDI LAZARUS" Gomme; le pa:6et SLig"t!6ttonsS. 2 Crer son savoir1%aire 1 Crer 6n Composant

SA.o6te;S la &ondition SLCLS. Une &ondition est 6n pa:6et 6tilis. Le pa:6et LCL &ontient to6s les Composants standards. SA.o6te;S 6n SGo6vea6 %i&"ierS SUnitS< p6is sa6vegarde; votre 6nit so6s le nom S6Qb6ttonsQappliS. Cre; dans le rpertoire d6 pa:6et 6n %i&"ier vide S6Qb6ttonsQappli.lrsS. Enregistre; votre pa:6et en &li:6ant s6r SEnregistrerS< dans le pro.et de pa:6et. A%%e&te; l6i le nom SLa;!o6tonsPersonnalisesS. A.o6te; ses de6? tDpes dans la partie inter%a&e de votre 6nit C {$,ode DE)P6I} interface t&pe 5(D!6tton ] interface <0{=>?FE>@FABCCDAE:=DAEFEFAFEF@:?=>?@DF}0G End V -n 6tilise le mode DELP45 a%in de ne pas avoir > grer les adresses de pointe6rs. Le mode DELP45 est e?pli:6 dans le &"apitre s6ivant. -n d&lare 6n tDpe inter%a&e permettant d,indi:6er :6e nos bo6tons s6pportent to6s le tDpe S5(D!6ttonS. La &"aine "e?ad&imale permet d,6tiliser la mt"ode Ss6pportS dans to6te &lasse a%in de re&onnaLtre le tDpe S5(D!6ttonS. Ainsi no6s retro6vons pl6s %a&ilement nos bo6tons. Go6s 6tilisons le PolDmorp"isme po6r re&onnaLtre nos propres bo6tons. Voi&i le Code So6r&e permettant de re&onnaLtre nos bo6tons C

Crer son savoir1%aire 1 Crer 6n Composant

2/

If UneClasse.S6pport U 5(D!6tton ) % en Begin S"o@(essage U ,C,est mon bo6ton W, )V End; En FREE PASCAL on d%init a6 ma?im6m &e :6e l,on %ait. Les d%initions permettent d,6tiliser l,-b.et< a%in d,amliorer l,6tilisation de nos Composants. 86ste apr)s la d%inition de l,inter%a&e S5(D!6ttonS pla&e; &e Code C B(DClose ] class U B!it!tn<5(D!6tton ) pri$ate public constructor CreateUB"e-@nerC BComponent)V overrideV procedure Cli&JV o$erride; publis ed propert& 0lDp" stored FalseV End; B(DClose est le des&endant de B!it!tn. 5l s6pporte l,inter%a&e 5(D!6tton. Crer la &la6se 6ses dans la partie Sinter%a&eS. A.o6te; ens6ite les noms d,6nits SStdCtrls< Classes< lreso6r&esS. L,6nit SStdCtrlsS &ontient les bo6tons. L,6nit SClassesS &ontient le tDpe &omposant. L,6nit Slreso6r&esS vo6s permettra d,a.o6ter les images > vos bo6tons. Le Constr6&te6r Create et la mt"ode Cli&J sont prsents dans le Composant B!it!6tton par l,4ritage. Go6s les s6r&"argeons par le mot &l SoverrideS s6ivi d,6n SVS. 0rE&e a6 PolDmorp"isme LAZARUS vo6s po6ve; &"anger l,an&=tre 2# Crer son savoir1%aire 1 Crer 6n Composant

SB!it!tnS par 6n an&=tre bo6ton possdant 6n S0lDp"S. D,a6tres bo6tons ave& S0lDp"S e?istent en de"ors d6 pro.et LAZARUS. Vo6s po6ve; don& %a&ilement &"anger de tDpe !o6ton par la &lasse :6e vo6s &re;. Bo6s les Composants LAZARUS poss)dent le Constr6&te6r Create ave& &omme param)tre le Propritaire d6 Composant. Gotre Composant est don& a6tomati:6ement dtr6it lors:6e son parent se dtr6it. A6ssi to6s les Composants des&endants de la &lasse BLCLComponent poss)dent la mt"ode SCli&JS sans a6&6n param)tre. Une mt"ode :6i pe6t =tre s6r&"arge poss)de le mot &l Svirt6alS. Le Composant an&=tre d%inissant la mt"ode 6tilise don& le mot &l Svirt6alS s6r la mt"ode &re. Vo6s po6ve; don& %a&ilement vri%ier si &,est bien BLCLComponent :6i d%init SCli&JS en maintenant SCtrlS en%on&e p6is en &li:6ant s6r &"a:6e tDpe as&endant 6tilis. Po6r &"er&"er l,6nit d6 bo6ton SB!it!tnS &"er&"e; dans to6s les rpertoires d6 Code So6r&e de LAZARUS la bonne 6nit. Sinon &ette 6nit s,appelle SStdCtrlsS. Cette 6nit est in&l6se dans le pa:6et LCL. Dans le pa:6et SA.o6te;S la SConditionS SLCLS.

Crer son savoir1%aire 1 Crer 6n Composant

2$

A*outer la condition "LCL" au paquet Vo6s po6ve; SCompilerS le pa:6et po6r tro6ver des erre6rs. Si votre Code So6r&e est bon vo6s po6ve; app6De; s6r SCtrlS[ SS"i%tS [ SCS. Cela va &rer les de6? mt"odes. (aintenant no6s allons remplir les de6? mt"odes s6r&"arges dans la partie SimplmentationS C i,ple,entation uses FormsV .. Cr*er des constantes per,et d0*$iter de se tro,per pour leur r*utilisation const CSBQFACL-SE],B(DClose,V .. No, du fic ier I,age { %9&Close } procedure B(DClose.Cli&JV begin if not assigned U -nCli&J ) 22 Crer son savoir1%aire 1 Crer 6n Composant

and U -@ner is BC6stomForm ) t en Begin U -@ner as BC6stomForm ).CloseV .. Fer,eture du for,ulaire E?itV End; in erited; end; constructor B(DClose.CreateUB"e-@nerC BComponent)V begin in erited Create - % e(+ner !; if 0lDp".EmptD t en Begin .. C arge le fic ier I,age 0lDp".LoadFromLa;ar6sReso6r&e U CSBQ(HCL-SE)V End; end; A.o6t la &onstante CSBQ(HCL-SE > la partie inter%a&e de votre 6nit de &omposant. A%%e&te; l6i le nom de votre &lasse &re< > savoir SB(DCloseS. Voil> l,essentiel de notre Composant SB(DCloseS. La pro&d6re s6r&"arge SCli&JS %erme le %orm6laire< s,il n,D a pas d,vnement de SCli&JS s6r le !o6ton dans le %orm6laire. 5l s6%%it :6e &ette So6r&e soit e?&6te de6? %ois dans l,Appli&ation po6r :6e &ette So6r&e ait remplit 6n ob.e&ti% d,a6tomatisation. -n passe la mt"ode SCli&JS "rite par la mt"ode SE?itS. -n a vri%i< avant d,l6der la mt"ode SCli&JS de l,an&=tre< :6,il n,D avait :6e la gestion de l,vnement S-nCli&JS :6e l,on vitait. Go6s n,l6dons e%%e&tivement pas l,vnement S-nCli&JS en vri%iant s,il e?iste. Ainsi no6s permettons d,6tiliser le bo6ton de %ermet6re 6ni:6ement po6r l,image &entralise. Crer son savoir1%aire 1 Crer 6n Composant 2+

Le Code sp&i%i:6e est a6tomatis ave& le ma?im6m de Composants possdant di%%rents ob.e&ti%s. -n se rend &ompte :6e< bien :6e le Composant permette de &entraliser< &el6i1&i a6gmente a6ssi la taille de l,e?&6table. Si la %on&tion de %ermet6re tait s6r &"a:6e vnement de &"a:6e bo6ton< &ela alo6rdirait l,e?&6table. A6ssi< si les &onditions te&"ni:6es de %ermet6re d6 %orm6laire &"angeaient< il %a6drait &"anger le Code So6r&e de &"a:6e bo6ton ne des&endant pas de SB(DCloseS.

1)Choi, $e )%ima1e
Le Code So6r&e d6 Constr6&te6r va &rer 6ne erre6r > l,e?&6tion &ar il n,D a pas de %i&"ier image. Le Constr6&te6r de notre bo6ton &"arge l,image d6 bo6ton grE&e a6 %i&"ier SlrsS. C"oisisse; votre image de %ermet6re s6r 6n site Aeb &ontenant des images Libres ave& 6ne li&en&e SArt LibreS< o6 SCreative CommonS ave& o6 sans SbDS ave& o6 sans SSAS. Vri%ie; la li&en&e. Si vo6s vo6s pose; des :6estions s6r les li&en&es vo6s po6ve; &onta&ter 6n 0ro6pe d,Utilisate6rs L5GUF lo&al. Les li&en&es Libres poss)dent pl6s de %a&ilits :6ant a6? modi%i&ations. Vo6s ave; 6ne d%inition de Libre dans le glossaire. Le %i&"ier image doit =tre 6n %i&"ier SFP(S< de 7 pi?els s6r 7 pi?els< ave& &omme nom le tDpe de la &lasse de notre bo6ton. Cela permet de &"arger l,image d6 bo6ton dans la palette de &omposants. +3 Crer son savoir1%aire 1 Crer 6n Composant

Convertisse; ave& 05(P votre image a6 %ormat SFP(S. Po6r %aire &ela sa6vegarde; l,image ave& 05(P< en remplaMant l,an&ienne e?tension de %i&"ier par SFP(S sans enlever le point. L,e?tension &e sont les derni)res lettres apr)s le dernier point d6 %i&"ier. Alle; dans votre dossier &ontenant SLAZARUSS. Alle; dans le rpertoire StoolsS. Compile; le pro.et Sla;resS< si &e n,est pas d.> %ait. -6vre; 6n SBerminalS< o6 alle; dans votre a&&essoire SLigne de &ommandeS. Copie;1D le lien vers l,e?&6table Sla;resS. Copie; le lien vers le %i&"ier resso6r&es SlrsS :6i va =tre &r. P6is &opie; le lien vers le %i&"ier FP(. Vo6s po6ve; vent6ellement a.o6ter d,a6tres images< si vo6s vo6le; &rer d,a6tres bo6tons. Go6s allons a.o6ter le %i&"ier resso6r&e > l,6nit. Alle; to6t > la %in de l,6nit de votre Composant. 5nsre; &ette So6r&e avant le Send.S %inal C initialiHation {$I u2buttons2appli.lrs} end. L,6nit Sresso6r&esS est n&essaire. La dire&tive fg5h a.o6te le %i&"ier resso6r&e a6 Code So6r&e.

Crer son savoir1%aire 1 Crer 6n Composant

+'

')Enre1istrement $u Composant
A l,enregistrement d6 Composant et en %on&tion de la s6r&"arge e%%e&t6e< &el6i1&i voit &ertaines de ses proprits re&onn6es par LAZARUS< a%in d,diter rapidement le Composant. 5l est possible d,6tiliser des proprits< voire de les s6r&"arger< dans son 6nit d,enregistrement de Composants. Un Composant est 6n -b.et des&endant de l,-b.et BComponent. Bo6t Composant LAZARUS< des&endant de BComponent< pe6t =tre a&&essible dans la palette de Composant. Po6r :6,6n Composant soit enregistr dans 6ne palette< voi&i le Code So6r&e > a%%e&ter > 6ne 6nit d,enregistrement d6 Composant. Cre; &ette no6velle 6nit dans votre no6vea6 pa:6et C Unit 6Qregbo6tonsV interface uses ClassesV procedure Iegister; i,ple,entation uses 6Qb6ttonsQappliV procedure Iegister; begin RegisterComponentsU,(es!o6tons,< bB(DClosec)V end; +7 Crer son savoir1%aire 1 Crer 6n Composant

end. La pro&d6re SRegisterS doit =tre e?&6te par le pa:6et :6i installe le Composant. Vri%ie; po6r &ette 6nit si la &ase > &o&"er SR%ren&er l,6nitS est &o&"e. L,6nit d,enregistrement ne doit .amais =tre 6tilise dans votre programme. En e%%et le Code So6r&e de dveloppement est in6tile po6r le programme e?&6table.

"R!"!rencer l'unit!" est coc#! pour l'unit!

+)"o$i.ier ou Sur(har1er >


Si votre Composant a.o6te 6n ob.e&ti% a6 Composant initial< il est pr%rable de &rer 6ne a6tre 6nit s6r&"argeant le Composant. Cette derni)re permet de ne pas avoir de Code in6tile< po6r le premier ob.e&ti% d6 Composant. La modi%i&ation d,6n Composant se %ait en de6? tapes. Po6r po6voir modi%ier 6n Composant< l,a&&ord de l,a6te6r est n&essaire. Vo6s ave; Crer son savoir1%aire 1 Crer 6n Composant +*

alors a&&)s a6 gestionnaire de version permettant de le modi%ier. Sinon :6e le Composant pe6t =tre abandonn< et sa li&en&e permet de le modi%ier. S,il n,D a a6&6ne li&en&e< &onta&te; l,a6te6r. Sinon vo6s ne %aites :6,a.o6ter des options mine6res. Se6lement< sans l,a&&ord de parti&ipation de l,a6te6r< vo6s ne po6ve; pas &orre&tement mettre > .o6r le Composant< Vo6s =tes alors se6l responsable de ses vol6tions. 5l s6%%it so6vent de &onta&ter l,a6te6r< :6i sera en gnral &ontent de vo6s aider > amliorer son savoir1%aire.
H)SURCHARGER UN

COMPOSANT

G,"site; pas > s6r&"arger to6t Composant< s6rto6t si vo6s dispose; des So6r&es :6i permettent de tro6ver pl6s %a&ilement les &onto6rnements po6r les erre6rs d,4ritage. Lors:6e vo6s s6r&"arge; 6n Composant< vo6s ave; a&&)s a6? mt"odes protges. Ces mt"odes sont ina&&essibles sans la s6r&"arge. 5l %a6t :6el:6e%ois =tre ast6&ie6?< a%in de s6r&"arger &orre&tement &ertaines mt"odes< de &ertains Composants. Vo6s po6ve; indi:6er > l,a6te6r d6 Composant les modi%i&ations n&essaires > 6n 4ritage %a&ilement e%%e&t6. Rvite; d,6tiliser des &onto6rnements< &ar ils pe6vent provo:6er de no6velles erre6rs > la mise > .o6r.
I)CRER UNE LIBRAIRIE HOMOG!NE

Un pa:6et de Composants est mis en pla&e rapidement. En vo6lant =tre en&ore pl6s rapide vos pa:6ets deviennent 6ne librairie &ompl)te paramtrable a6 minim6m vo6l6. Vo6s s6blime; alors votre &apa&it d,adaptation en ne &rant :6e l,6tile. + Crer son savoir1%aire 1 Crer 6ne librairie "omog)ne

Ce :6i sera personnalis sera paramtrable. Le reste se &on%ig6rera a6tomati:6ement. Une librairie %o6rnit des o6tils et des pro&ds po6r &rer son Logi&iel sans perdre de temps. 5l %a6dra amliorer l,5DE LAZARUS o6 bien viter d,6tiliser l,5DE ave& des %i&"iers de &on%ig6ration. Ces %i&"iers po6rront =tre idalement des %i&"iers analDti:6es U(L o6 (ER5SE. Ces %i&"iers vo6s permettront d,=tre indpendant de LAZARUS< en 6tilisant les m=mes savoir1%aire s6r d,a6tres o6tils de programmation.
J)LE

LIBRE ET L'ENTREPRISE

LAZARUS &ontredit les pro%esse6rs o6 instit6tions< indi:6ant :6e les Composants n&essitent pl6s de temps en maintenan&e< :6,en gain de temps > l,6tilisation. Un Composant LAZARUS %ait gagner bea6&o6p de temps< grE&e > l,S5nspe&te6r d,-b.etsS et a6 Code So6r&e de dveloppement. Votre Composant s,il est bien do&6ment pe6t devenir 6n ato6t %iable< %aisant &onnaLtre votre so&it. 5l pe6t a6ssi =tre sa6v de l,abandon< grE&e > 6ne &omm6na6t to6.o6rs pl6s avare de Composants Libres. Un Composant :6i devient Libre ve6t soit =tre pop6laire< soit se %aire &onnaLtre po6r s6rvivre. Cela n,emp=&"e pas %or&ment 6ne a&tivit &ommer&iale. Crer 6n Composant Libre permet de< &ertes %aire &onnaLtre votre Composant< mais a6ssi de tro6ver le moDen de savoir si on reste le meille6r dans son domaine< en &rant 6ne &omm6na6t sondant les 6tilisate6rs et &ontrib6te6rs. G,espre; pas des &ontrib6te6rs :6,ils &ollaborent sans =tre rm6nrs. Vo6s sere; par &ontre pe6t1=tre rm6nr po6r des modi%i&ations Crer son savoir1%aire 1 Le Libre et l,entreprise +/

importantes. Attende; de votre &omm6na6t 6ne e?pertise s6r votre savoir< des aides po6r vo6s promo6voir. Ces aides ne sont pe6t1=tre pas &elles :6e vo6s so6"aite;. Elles permettent don& de tro6ver de no6vea6? mar&"s.
K)TESTER SON SAVOIR"FAIRE

Un &omposant est a6 &Y6r de votre savoir1%aire. Si vo6s modi%ie; votre &omposant &ela impli:6e %or&ment des ra&tions en &"aine dans votre logi&iel. 5l est don& tr)s intressant de mettre en pla&e des .e6? de tests en s6r&"argeant vos pa:6ets de &omposants.
L)L'EXEMPLE

FPCUnit vo6s permet de tester les logi&iels FREE PASCAL. Go6s allons mettre en pla&e des .e6? de tests po6r notre bo6ton de %ermet6re. Dans le rpertoire de votre &omposants &re; 6n dossier StestsS. Dans le men6 SFi&"ierS< &re; 6ne SGo6velleS SAppli&ation de tests FPCUnitS<en remplaMant le nom d6 .e6 de tests SBestCaseS par SBest!6ttonsS. SEnregistre;S le pro.et en le nommant S%p&6nitb6ttonsS< dans le dossier &r. A.o6te;1D dans la &la6se S6sesS d6 pro.et l,6nit S5nter%a&esS. Cette 6nit est n&essaire po6r grer les %orm6laires< dont no6s avons besoin po6r tester le bo6ton de %ermet6re d6 %orm6laire. Dans le men6 SPro.etS< p6is S5nspe&te6r de Pro.etS< a.o6te; ave& S[S votre pa:6et en SGo6velle ConditionS. -6 bien a.o6te; le dossier S..OS dans les S-ptions d6 pro.etS< p6is S-ptions de &ompilationS< p6is le dossier des librairies. Cela permet de tester le &omposant sans avoir > +# Crer son savoir1%aire 1 L,e?emple

l,installer.

1)Le .ormu)aire
A.o6te; 6n no6vea6 %orm6laire nomm Stest%ormS. Dans la partie Sinter%a&eS< a.o6te; l,6nit S6Qb6ttonsQappliS. Dans le %orm6laire< no6s allons mettre en pla&e le bo6ton :6e no6s avons &r. Le %orm6laire poss)de &es mt"odes et variables< dont &ertaines e?istaient d.> dans l,as&endant de la %i&"e C { %%estFor, } BBestForm ] classUBForm) public !o6ton C B(DCloseV procedure DoClose U $ar AA&tion C BCloseA&tion )V o$erride; procedure R6n!o6tonV destructor DestroDV o$erride; end; Go6s n,avons pas besoin de tester le %orm6laire< mais le bo6ton. Go6s &rons don& le bo6ton man6ellement< sans 6tiliser l,5DE C procedure BBestForm.R6n!o6tonV begin !o6ton C] B(DClose.CreateUSel%)V end; 5l est intressant d,6tiliser d,a6tres moDens de &ration< :6e &e6? 6tiliss par le dveloppe6r< a%in de vri%ier le &omposant a6trement. Ge nglige; pas &ependant les .e6? de tests > e%%e&t6er. Crer son savoir1%aire 1 L,e?emple +$

Go6s &rons l,a6to1destr6&tion d6 %orm6laire< a%in de vri%ier pl6s tard s,il est &orre&tement dtr6it C procedure BBestForm.DoCloseU$ar AA&tionC BCloseA&tion)V begin in erited DoCloseUAA&tion)V AA&tion C] &aFreeV end; destructor BBestForm.DestroDV begin in erited DestroDV BestForm "# nil; end; Go6s testons le bo6ton et ne testons pas le %orm6laire. Go6s no6s ass6rons don& :6e le %orm6laire est &orre&tement a%%e&t > SnilS< m=me si dans les so6r&es il est &ens =tre &orre&tement a%%e&t > SnilS.

')La ()asse $e tests unitaires


Voi&i > :6oi ressemble notre &lasse de tests C

+2

Crer son savoir1%aire 1 L,e?emple

{ %%estButtons } BBest!6ttons] classUBBestCase) protected procedure SetUpV o$erride; procedure BearDo@n; o$erride; publis ed Procedure BestsV procedure Best4ooJUpV end; Les de6? mt"odes p6blies sont a%%e&tes dans les .e6? des tests par l,initialisation d,6nit s6ivante< sit6e to6t > la %in de votre 6nit de &lasse de tests C initialiHation RegisterBestUBBest!6ttons)V end. Les tests sont r&6prs par le pro.et de tests ave& &ette mt"ode. Voi&i la mt"ode de &ration des -b.ets tests C procedure BBest!6ttons.SetUpV begin .. InitialiHe Appli&ation.CreateFormU BBestForm< BestForm )V BestForm.R6n!o6tonV end; Dans votre savoir1%aire il est pr%rable de mettre les &ommentaires en anglais< a%in d,internationaliser vos &omposants. Le %orm6laire a t &r. 5l est pr%rable de le dtr6ire par no6s m=me C procedure BBest!6ttons.BearDo@nV Crer son savoir1%aire 1 L,e?emple ++

begin .. Freeing BestForm.FreeV end; Passons a6? .e6? de tests C procedure BBest!6ttons.BestsV begin SetUpV .. testing AssertBr6eU,Besting 0lDp" o% B(DClose,<assignedUBestForm.!o6ton.0lDp"))V BestForm.!o6ton.Cli&JV AssertBr6eU,BestForm o% B(DClose not visible,<AssignedU BestForm ))V BearDo@nV end; L,implmentation pr&dente est 6ne des de6? mt"odes p6blies :6i sera appele po6r tester le bo6ton. 5l est don& n&essaire de &rer les &omposants avant les .e6? de tests ave& SSetUpS< po6r les dtr6ire > la %in ave& SBearDo@nS. La &lasse BBestCase poss)de elle1m=me des mt"odes permettant d,e%%e&t6er les tests en les enregistrant dans le pro.et. Un .e6 de test FPCUnit &ommen&e par SAssertS< s6ivi d6 tDpe de .e6 de tests. SAssertBr6eS va don& tester si le de6?i)me param)tre est bien > SBr6eS. P6ant a6 premier param)tre il permet de savoir :6el .e6 de test no6s ralisons. Si vo6s vo6le; tester 6ne vale6r 6tilise; SAssertE:6alsS. Go6s testons bien le %ait :6e le S0lDp"S soit a%%e&t > la &ration< sans '33 Crer son savoir1%aire 1 L,e?emple

avoir besoin de %orm6laire. Go6s testons a6ssi la %ermet6re d6 %orm6laire par le bo6ton SB(DCloseS. Go6s ne testons pas &ependant le %ait :6e le 0lDp" ne soit pas enregistr dans le %orm6laire. Cette mt"ode p6blie permet de tester si les .e6? de tests sont e%%e&tivement e?&6ts C procedure BBest!6ttons.Best4ooJUpV begin FailU,Best o% b6tton %inis"ed,)V end; La mt"ode SFailS envoie 6n message d,erre6r. Elle devra don& =tre v6e > l,e?&6tion. Elle po6rra =tre enleve en 6tilisant d,a6tres 6tilitaires de tests pl6s vol6s.

+)Le pro3et $e tests


Dans le %i&"ier SlprS &re; &ette &lasse C { %9&%estIunner } B(DBestR6nner ] classUBBestR6nner) .. o$erride t e protected ,et ods of %%estIunner to custo,iHe its be a$ior public procedure R6nBestsV end; Cette mt"ode permet de dmarrer to6s les .e6? de tests C

Crer son savoir1%aire 1 L,e?emple

'3'

{ %9&%estIunner } procedure B(DBestR6nner.R6nBestsV begin DoBestR6nU0etBestRegistrD)V end; Ens6ite no6s &rons l,e?&6tion d6 pro.et C $ar Appli&ationC B(DBestR6nnerV begin Appli&ation C] B(DBestR6nner.CreateUnil)V Appli&ation.5nitiali;eV Appli&ation.Bitle C] ,FPCUnit Console test r6nner,V Appli&ation.R6nBestsV Appli&ation.FreeV end. Comme dans 6n pro.et standard< no6s &reons 6n -b.et &entral< :6i g)re les -b.ets de tests &ette %ois &i. Apr)s avoir initialis< p6is nomm notre logi&iel< no6s dmarrons les tests. En%in no6s librons notre logi&iel.
M)EXERCICE

Cre; 6n rapport de tests< grE&e > la do&6mentation de FPCUnit.


N)CONCLUSION

Les &omposants doivent =tre tests. (ais ils permettent de gagner '37 Crer son savoir1%aire 1 Con&l6sion

bea6&o6p de temps grE&e > votre 5DE RAD. Vos &omposants permettent de gagner bea6&o6p de temps< to6t en &rant des logi&iels personnaliss et int6iti%s. A la %in vo6s dispose; d,6n mote6r &rant vos logi&iels grE&e > 6ne analDse 6ni%orme. Les gains de temps sont minimes ave& le mote6r< mais &e dernier permet de %iabiliser votre &ration de logi&iels.

Crer son savoir1%aire 1 Con&l6sion

'3*

H)!E PASCAL <ERS FREE PASCAL


CREAB5VE C-((-G !H SA
A)INTRODUCTION

FREE PASCAL permet de &rer des savoir1%aire m6ltiplate1%orme > partir de savoir1%aire A5GD-AS &omme DELP45 o6 BUR!PASCAL. A partir de &es savoir1%aire o6 Logi&iels< on &re des librairies FREE PASCAL. Cependant &ela demande l,adaptation d,6ne partie des So6r&es.
B)DE

TURBO PASCAL VERS FREE PASCAL

Po6r trans%rer 6n Logi&iel BUR!- PASCAL te?t6el il %a6t .6ste r6tiliser les bonnes 6nits. Elles se tro6vent n&essairement dans LAZARUS< o6 FREE PASCAL. Po6r trans%rer 6n savoir1%aire BUR!- PASCAL grap"i:6e C 5nsre; la partie grap"i:6e dans 6ne %en=tre et adapte; la taille grap"i:6e > la %en=tre Re&re; la partie grap"i:6e ave& les Composants vis6els
C)GESTIONNAIRE DE DONNES

Si vo6s so6"aite; bea6&o6p d,6tilisate6rs o6 de donnes &re; 6n lien vers 6n SDst)me de 0estion de !ase de Donnes< &omme F5RE!5RD< SPL5BE< (H SPL< voire -RACLE. F5RE!5RD et SPL5BE sont des S.0.!.D. mi1lo6rds s6%%isants po6r to6t '3 De PASCAL vers FREE PASCAL 1 0estionnaire de donnes

Logi&iel install %a&ilement. 5ls s,6tilisent en Embar:6. (H SPL permet l6i de %aire vol6er votre serve6r de donnes en serve6rs de donnes rpartis nomms S&l6stersS. -RACLE l6i permet de &rer 6n se6l serve6r de donnes tr)s lo6rd. 5l est possible d,6tiliser des gestionnaires de donnes mi1lo6rds< si votre entreprise est rpartie. -n &re 6n rsea6 maill permettant de d6pli:6er les in%ormations. Le si)ge prend le pas s6r les %iliales.
D)DE

DELPHI VERS LAZARUS

Lors:6e son Logi&iel est &r en DELP45< le trans%ert &onsiste > 6tiliser des Composants LAZARUS > la pla&e des Composants DELP45. 5l est possible :6e son Logi&iel reste &ompatible DELP45< grE&e a6? dire&tives de &ompilation. Cela permet d,allger l,e?&6table A5GD-AS. Vo6s po6ve; tro6ver les Composants :6i vo6s man:6ent< grE&e > 6ne re&"er&"e s6r 6n site Aeb de Composants &omme @@@.LAZARUS1 &omponents.org.

E)LES DIRECTIVES DE COMPILATION

Les instr6&tions de &ompilation permettent de porter son programme vers les di%%rentes plates1%ormes. Elles d%inissent 6ne %aMon de &ompiler l,6nit. Elles sont don& > pla&er a6 db6t de l,6nit.

De PASCAL vers FREE PASCAL 1 Les dire&tives de &ompilation '3/

1)Compati/i)it& !ELPHI
Voi&i 6ne instr6&tion de &ompilation FREE PASCAL C {$,ode DE)P6I} .. Co,pilation co,patible DE)P6I 5l e?iste des DELP45 grat6its< permettant de raliser des appli&ations non &ommer&iales. Si :6el:6,6n vo6s demande d,=tre &ompatible DELP45 vo6s po6ve; le %aire grE&e > 6ne vieille li&en&e de DELP45 $< voire DELP45 #. Les dire&tives de &ompilations permettent de &ompiler 6ni%ormment l,6nit< en l6dant des So6r&es in&ompatibles ave& &ertaines plates1 %ormes. Ainsi< les So6r&es d,6ne plate1%orme sont l6des lors:6,on &ompile s6r 6ne a6tre plate1%orme. L,instr6&tion de &ompilation< :6i permet > FREE PASCAL de rendre le Code So6r&e &ompatible DELP45< n,est pas lisible par DELP45. -n pe6t D a.o6ter 6ne dire&tive de &ompilation po6r DELP45< si on l,6tilise. Go6s avons v6 la notion de pointe6r dans le &"apitre s6r la Progra,,ation Proc*durale a$anc*e. Le mode DELP45 permet de s6pprimer la notion d,adresse de pointe6r. Cela n,est pas g=nant< a6 &ontraire< &ar DELP45 prot)ge les pointe6rs. Les pointe6rs sont des adresses en mmoire< redirigeant vers 6n a6tre endroit de la mmoire. 5ls permettent de manip6ler les -b.ets. En mettant en mode DELP45 vo6s po6ve; o6blier les pointe6rs en partie< &ar le &ompilate6r FREE PASCAL n,est pas enti)rement &ompatible ave& &e mode< s6rto6t ave& les derni)res grammaires FREE PASCAL. Le dveloppe6r a besoin de manip6ler des -b.ets< pas de grer des pointe6rs. Le pointe6r pe6t &ependant =tre 6tile po6r s&r6ter les tablea6?. (ais PASCAL -b.et permet to6.o6rs &ela. '3# De PASCAL vers FREE PASCAL 1 Les dire&tives de &ompilation

5l est possible en Pas&al d,l6der totalement les a%%e&tations de pointe6rs< grE&e > &ette dire&tive > a.o6ter > to6t %orm6laire C {$IFDEF FPC} {$,ode DE)P6I} {$I J.lf,} {$E)3E} {$I J.df,} {$ENDIF} Ces dire&tives pe6vent =tre mises en to6t db6t d,6nit et 6ne se6le %ois. Elles d%inissent &omment va =tre &ompile l,6nit. 5&i l,instr6&tion de &ompilation S(ode DELP45S est e?&6te si on 6tilise le Compilate6r FREE PASCAL. A6ssi on &"arge le %i&"ier Sl%mS. Sinon on &"arge les Composants &onten6s dans le %i&"ier Sd%mS. Si votre 6nit n,est ni 6n %orm6laire< ni 6n mod6le de donnes< vo6s po6ve; enlever les dire&tives de &"argements de %i&"iers Sl%mS et Sd%mS. Un %i&"ier Sd%mS est 6ne &orrespondan&e DELP45 de %i&"ier Sl%mS ave& LAZARUS. Les %i&"iers Sd%mS et Sl%mS &ontiennent les in%ormations des Composants &"args dans 6n mod6le de donne< o6 6n %orm6laire. Ces Composants sont visibles dans l,S5nspe&te6r d,-b.etsS. Cette dire&tive de &ompilation permet de pla&er 6ne instr6&tion DELP45 dans le Code C {$IFNDEF FPC} var Dire&torDSeparator C C"ar ] ,e,V {$ENDIF} 5&i on d%init le &ara&t)re de sparation de rpertoire :6and on est s6r DELP45.

De PASCAL vers FREE PASCAL 1 Les dire&tives de &ompilation '3$

')Compati/i)it&s a7e( )es p)ates=.ormes


Cette So6r&e permet de d&larer s6r A5GD-AS le sparate6r de rpertoires des &"emins C {$IFDEF KIND(K3} Dire&torDSeparator C] ,e,V {$ENDIF} Cette So6r&e permet de d&larer s6r les sDst)mes UG5F le sparate6r de rpertoires C {$IFDEF UNIL} Dire&torDSeparator C] ,O,V {$ENDIF} {$IFDEF )INUL} Dire&torDSeparator C] ,O,V {$ENDIF} En e%%et lors:6,on &re 6n Logi&iel m6ltiplate1%orme< il est n&essaire de penser a6? di%%ren&es entre les di%%rentes plates1%ormes. A6ssi penser a6? erre6rs po6vant se prod6ire permet de s&6riser son Logi&iel. Go6s ne sommes pas des ma&"ines. Po6rtant no6s &rons des Logi&iels rpondant > 6ne logi:6e. Si &ette logi:6e n,est pas respe&te notre programme n,est pas sZr.
F)TRADUCTION DE

COMPOSANTS

Po6r trad6ire 6n Composant DELP45 vers LAZARUS< il est pr%rable '32 De PASCAL vers FREE PASCAL 1 Brad6&tion de Composants

:6e &e Composant reste &ompatible DELP45< grE&e a6? dire&tives de &ompilation. Cela permet de parti&iper a6 pro.et e?istant< et de &entraliser les So6r&es. Rempla&e; le Code grap"i:6e< et les liens vers les librairies A5GD-AS< par d6 Code So6r&e LAZARUS. LAZARUS poss)de 6ne large bibliot"):6e de Codes So6r&es. Des Composants Libres DELP45 pe6vent =tre trad6its vers LAZARUS. Le Code grap"i:6e LAZARUS 6tilise les di%%rentes librairies Libres de &"a:6e plate1%orme. Ces di%%rentes librairies sont "omognises en des librairies gnri:6es. Les 6nits > ne pas 6tiliser sont les 6nits sp&i%i:6es > 6ne se6le plate1 %orme< &omme les 6nits C @in po6r A5GD-AS gtJ po6r L5GUF &arbon po6r (AC -S 6ni? po6r UG5F Si vo6s =tes oblig d,6tiliser 6ne de &es 6nits< sa&"e; :6e vo6s a6re; pe6t1=tre 6ne 6nit gnri:6e dans la pro&"aine version de LAZARUS. Votre Composant sera &ompatible ave& la se6le plate1%orme de l,6nit non gnri:6e 6tilise. Si vo6s ne tro6ve; pas &e :6,il vo6s %a6t< re&"er&"e; dans les So6r&es LAZARUS o6 FREE PASCAL. Conta&te; sinon 6n dveloppe6r LAZARUS. 5l vo6s indi:6e alors &e :6e vo6s po6ve; %aire.
G)CARACT!RES ACCENTUS

Si vo6s observe; :6e les &ara&t)res a&&ent6s ne sont pas gards< &,est > &a6se d,6n probl)me de trad6&tion en gnral. 5l est n&essaire d,avoir De PASCAL vers FREE PASCAL 1 Cara&t)res a&&ent6s '3+

des %i&"es en UBF2. Po6r %aire &ela vo6s po6ve; &rire 6n programme 6tilisant la mt"ode SAnsiBoUBF2S< o6 bien vo6s po6ve; 6tiliser 6n dite6r de te?te o6vrant en Ansi< et enregistrant en UBF2. Sinon &,est > &a6se des &ara&t)res AGS5 o6 UBF2. En e%%et il e?iste des &ara&t)res de6? %ois pl6s longs< les &ara&t)res UBF'#. Ces &ara&t)res permettent 6ne le&t6re pres:6e internationale< po6r les paDs possdant 6n alp"abet de lettres. Vri%ie; si le SBStringlistS 6tilise des SAideStringsS. Ce sont des &"aines ave& des &ara&t)res de6? %ois pl6s vol6mine6?.

''3

De PASCAL vers FREE PASCAL 1 Cara&t)res a&&ent6s

I)CR;A#ION !U LI<RE
CREAB5VE C-((-G !H GC1GD
A)HISTORIQUE

En 7332 il n,e?istait pas de livre %ranMais s6r LAZARUS. (att"ie6 05R-UF a don& &r des essais< p6is des arti&les s6r LAZARUS. P6is des images de LAZARUS ont t a.o6tes. Le livre s,est ordonn en &"apitres. 5l a %ait &onnaLtre son livre s6r @@@.developpe;.&om @@@.%ramaso%t.net< en di%%6sant des arti&les deven6s Libres. et

Le livre vol6e to6.o6rs en 73''< ave& les amliorations de LAZARUS et les no6vea6? pa:6ets LAZARUS. Les &"apitres s6r la programmation pro&d6rale en FREE PASCAL sont 6n arti&le retravaill de 8ean1(i&"el !ERGA!-BB-. Les images d,&rans ont t &res > partir de la version 3.+.72 o6 3.+.*3 de LAZARUS. Les dessins %ont soit partie de LAZARUS< o6 bien d6 pro.et -PEG CL5PARB.

Cration d6 livre 1 4istori:6e

'''

9)CHAPI#RES
A)RETROUVER UN CHAPITRE

A)A lire.................................................................................................... a)-b.e&ti%s d6 livre............................................................................. b)Li&en&e............................................................................................/ !)!iograp"ie...........................................................................................# a)D6 m=me a6te6r..............................................................................# C)LAZARUS FREE PASCAL................................................................$ a)Po6r:6oi &"oisir LAZARUS K........................................................$ b)Ar&"ite&t6res FREE PASCAL........................................................2 &)Appli&ations Libres LAZARUS......................................................+ d)D6 PASCAL orient -b.et............................................................'3 e)La &omm6na6t.............................................................................'' %)LAZARUS est partag...................................................................'' g)Les versions de LAZARUS.........................................................'7 ")Bl&"arger LAZARUS................................................................'* i)5nstaller LAZARUS so6s A5GD-AS..........................................' .)5nstaller LAZARUS so6s L5GUF..................................................'/ J)Con%ig6rer LAZARUS..................................................................'/ D)Programmer %a&ilement.....................................................................'$ a)Crer 6n logi&iel............................................................................'$ b)Pa:6et po6r db6tants...................................................................7/ &)5ndentation PASCAL.....................................................................7# d)Str6&t6re d6 Code So6r&e..............................................................72 e)Les %i&"iers resso6r&es...................................................................*' %)Bo6&"es de ra&&o6r&is de &ompltion............................................*' g)Bo6&"es de ra&&o6r&is de visibilit...............................................*/ ")Bo6&"es de ra&&o6r&is de dbogage..............................................*/ i)Bo6&"es de ra&&o6r&is de l,dite6r.................................................*$ .)Bo6&"es de ra&&o6r&is de l,environnement.....................................*2 E)(a premi)re appli&ation....................................................................*+ a)A %aire avant..................................................................................*+ ''7 C"apitres 1 Retro6ver 6n &"apitre

b)L,E?emple.....................................................................................*+ &)Cration de l,inter%a&e....................................................................*+ d)Bester ses Composants.................................................................. 3 e)L,E?emple...................................................................................... ' %)C"er&"er des Pro.ets...................................................................... $ g)5nstaller des Composants............................................................... $ ")LAZARUS ne dmarre pl6s.......................................................... 2 i)Vri%ier les li&en&es........................................................................ 2 .)Compilate6r FREE PASCAL......................................................... + J)0estion des erre6rs......................................................................../3 l)Les e?&eptions................................................................................/' F)L,-b.et...............................................................................................// a)5ntrod6&tion...................................................................................// b)Un -b.et......................................................................................../# &)Une &lasse....................................................................................../# d)Une 5nstan&e d,-b.et...................................................................../$ e)Les &omportements de l,-b.et.......................................................#' %)L,4ritage......................................................................................#7 g)La s6r&"arge..................................................................................#* ")L,En&aps6lation.............................................................................#/ i)Le PolDmorp"isme.........................................................................$/ .)Les proprits.................................................................................$2 J)L,U(L po6r programmer en -b.ets..............................................$+ 0)Crer son savoir1%aire........................................................................23 a)5ntrod6&tion...................................................................................23 b)Crer des 6nits de %on&tions........................................................23 &)Les Composants............................................................................2' d)Dveloppement Br)s Rapide d,Appli&ations.................................27 e)5ntr=ts d6 DBRA..........................................................................2* %)Crer 6n Frame@orJ DBRA..........................................................2* g)Crer 6n Composant......................................................................2/ ")S6r&"arger 6n Composant.............................................................+/ i)Crer 6ne librairie "omog)ne.........................................................+/ .)Le Libre et l,entreprise...................................................................+# C"apitres 1 Retro6ver 6n &"apitre ''*

J)Bester son savoir1%aire...................................................................+$ l)L,e?emple.......................................................................................+$ m)E?er&i&e......................................................................................'3* n)Con&l6sion...................................................................................'3 4)De PASCAL vers FREE PASCAL..................................................'3/ a)5ntrod6&tion.................................................................................'3/ b)De BUR!- PASCAL vers FREE PASCAL...............................'3/ &)0estionnaire de donnes..............................................................'3/ d)De DELP45 vers LAZARUS......................................................'3# e)Les dire&tives de &ompilation......................................................'3$ %)Brad6&tion de Composants...........................................................''3 g)Cara&t)res a&&ent6s....................................................................''' 5)Cration d6 livre...............................................................................''7 a)4istori:6e....................................................................................''7 8)C"apitres...........................................................................................''* a)Retro6ver 6n &"apitre..................................................................''* 9)0lossaire..........................................................................................''/ a)Retro6ver 6n mot.........................................................................''/

?)GLOSSAIRE
A)RETROUVER UN MOT

Abstra&tion

L,Abstra&tion permet le PolDmorp"isme en orient -b.et en &rant 6ne &lasse abstraite :6i sera renseigne ave& ses &lasses %illes. Logi&iel permettant de raliser 6ne o6 pl6sie6rs tE&"es. An&iennement< &e terme anglais dsigne la p6naise< :6i mange les &ir&6its le&troni:6es. Cette p6naise &rait des erre6rs. Les programme6rs se sont d&"args alors des erre6rs dans le Code< po6r les attrib6er > &et animal.8,ai mis en pla&e le paiement par &arte ave& paDpal api 0lossaire 1 Retro6ver 6n mot

Appli&ation !og6e o6 !6g

''

ClientOServe6r

5nter%a&e logi&ielle &onne&te > 6n serve6r de donnes. Un serve6r pe6t %o6rnir l,inter%a&e. -n appelle &ette "irar&"ie le Brois Biers C Gavigate6r Aeb Serve6r d,inter%a&e Aeb Serve6r de donnes Ensemble de 3 et de ' &rs par le &ompilate6r. Le Code sert > agir s6r l,ordinate6r. Programme reprenant les di%%rentes So6r&es de Code po6r les &ompiler en 6n langage ma&"ine< des 3 et des ' e?&6tables par le pro&esse6r. Partie r6tilisable de ses Logi&iels. (t"ode paramtre permettant de &rer les -b.ets d,6n -b.et et d,initialiser l,-b.et. -n d&lare &ette mt"ode parti&6li)re en &ommenMant par S&onstr6&torS. (t"ode paramtre permettant de dtr6ire les -b.ets d,6n -b.et. En PASCAL -b.et on d&lare &ette mt"ode parti&6li)re en &ommenMant par Sdestr6&torS. o6 L,Embar:6 &,est pla&er 6n Logi&iel dans d6 matriel le&troni:6e. D&larations permettant de r6tiliser 6ne partie d,6n -b.et. Pro&d6re o6 (t"ode paramtre reto6rnant 6ne variable. Copie d,6n pro.et Libre voire -pen So6r&e

Code Compilate6r

Composant Constr6&te6r

Composant RAD Composant mis en pla&e %a&ilement.

Destr6&te6r

Embar:6 Embedded En&aps6lation Fon&tion ForJ

0lossaire 1 Retro6ver 6n mot

''/

Frame@orJ 4ritage 5DE o6 ED5

Savoir1%aire Logi&iel r6tilisable permettant de raliser 6n &ertain nombres de tE&"es. Pro&ds permettant > 6n -b.et d,"riter d,6n a6tre -b.et. 5ntegrated Development Environment o6 Environnement de Dveloppement 5ntgr. LAZARUS est 6n 5DE. 5l permet de &rer 6n Logi&iel grE&e > 6n ensemble d,o6tils "omog)nes. Ensemble de Composants et d,o6tils permettant des %on&tionnalits o6 6n gain de temps. Une &ration o6 6n Logi&iel Libre &,est 6ne &ration po6r la:6elle la li&en&e Libre permet de C Rt6dier la So6r&e. Utiliser la &ration librement. (odi%ier le Logi&iel o6 la &ration. D6pli:6er to6t &e :6i a t %ait. Di%%6ser &ommer&ialement o6 pas &e :6i a t &r. Une li&en&e Libre pe6t =tre C Virale C La &omm6na6t grandit %a&ilement &ar on est oblig de di%%6ser la So6r&e modi%ie o6 le Logi&iel l,6tilisant. La li&en&e Libre virale la pl6s &onn6e est la li&en&e 0PL :6i est 6tilise po6r partie ave& LAZARUS. Enti)rement Libre. La &ration pe6t =tre modi%ie &ommer&ialement sans avoir a6&6ne &ontrainte de di%%6sion %or&e de la So6r&e. La li&en&e !SD est 6ne li&en&e enti)rement Libre. D6 domaine p6bli& &ar les a6te6rs ont 0lossaire 1 Retro6ver 6n mot

Librairie Libre

''#

abandonn les droits &ommer&ia6? o6 l,Y6vre a v6 sa priode de %in de droits d,a6te6r termine. En gnral il est possible de s,approprier le pro.et d6 domaine p6bli&. Logi&iel (t"ode -b.et UAnalDse o6 Programmation -b.et) Ensemble de traitements permettant la rsol6tion de tE&"es. Pro&d6re o6 %on&tion dans 6n -b.et. Une mt"ode pe6t =tre en&aps6le o6 s6r&"arge. L,analDse -b.et est 6ne analDse des sDst)mes d,in%ormations :6i est pro&"e de l,"6main< to6t en o%%rant 6ne ar&"ite&t6re &ompr"ensible par la ma&"ine. -n reprsente to6te entit abstraite o6 &on&r)te par 6n -b.et :6i dispose de proprits -b.et. Les :6atre genres de proprits d,6n -b.et sont l,4ritage< le PolDmorp"isme< l,En&aps6lation< l,Abstra&tion. En respe&tant &es proprits< on &re 6n programme d,-b.ets disposant de sp&i%i&its propres a6 langage 6tilis. Pro.et > So6r&es partages. 5l pe6t =tre possible de parti&iper a6 pro.et en %on&tion de la li&en&e et de la disponibilit de l,entreprise. Pro.et LAZARUS permettant de r6nir et d,installer des Composants. (odi%i&ation > a.o6ter > 6n e?&6table. Le pat&" a6gmente o6 dimin6e la taille de l,e?&6table. Un pointe6r permet de sto&Jer les variables po6r les retro6ver. Un pointe6r est 6ne adresse pointant vers 6n endroit de la mmoire. Pro&d permettant par di%%rentes mani)res de r6tiliser pl6sie6rs -b.ets en m=me temps. Le PolDmorp"isme est rsol6 par le tDpe -b.et ''$

-pen So6r&e

Pa:6et Pat&" Pointe6r

PolDmorp"isme

0lossaire 1 Retro6ver 6n mot

Sinter%a&eS permettant de dnommer les mt"odes &omm6nes de %6t6rs -b.ets. Pro&d6re !o6t de Code &ommenMant par la d&laration implmente et paramtrable Spro&ed6reS< dlimite par 6n S!eginS et 6n SEndS. Les langages pro&d6ra6? sont des langages non -b.ets. 5l sont ar&"ite&t6rs selon des 6nits de pro&d6res et %on&tions s,appelant entre elles. Le langage PASCAL tait a6 db6t 6n langage pro&d6ral. o6 Un Logi&iel Propritaire ne di%%6se a6&6ne so6r&e. 5l est restreint. A5GD-AS est Private6r dans le sens oX &,est 6n SDst)me d,E?ploitation en lo&ation. En e%%et< vo6s =tes restreint par la n&essit de rester &ompatible ave& les derni)res Appli&ations paDantes. Rapid Appli&ation Development. Dveloppement Rapide d,Appli&ations grE&e > 6n 5DE o6 6ne librairie. Ce :6i permet de &rer 6n Logi&iel o6 6n Composant. 5l est intressant d,6tiliser des pro.ets -pen So6r&e o6 Libres a%in de ne pas travailler dans le %lo6. D%inition d,6ne variable permettant de manip6ler %a&ilement grE&e a6 &ompilate6r. la

Pro&d6ral ULangage)

Propritaire Private6r

RAD o6 DRA

So6r&e

BDpe U(L

Uni%ied (odeling Lang6age o6 Langage Uni%i de (odlisation. !oLte > o6tils de mod)les d,analDse servant > analDser 6n pro.et bas s6r la programmation -b.et. Partie de la mmoire< d%inie par 6n tDpe< po6vant varier > l,e?&6tion. Une variable sto&Je des 0lossaire 1 Retro6ver 6n mot

Variable

''2

&"i%%res< lettres< adresses< -b.ets. Aeb Rsea6 maill po6vant &ontenir 6n nombre pres:6e illimit d,ordinate6rs< grE&e a6 proto&ole 5PV#. Les ordinate6rs 6tilisent 6n navigate6r Aeb< :6i pe6t a&&der a6? appli&ations parti&ipatives< dites Aeb 7.3.

0lossaire 1 Retro6ver 6n mot

''+

5S!G +$27+/*'7/'# Rditions L5!ERL-0 Rdite6r ni +$2171+/*'7/' Droits d,a6te6r REGGES 733+ DpNt Lgal REGGES 73'3 5mprim en Fran&e en Avril 73'' par C 8-UVE '< r6e d6 Do&te6r1Sa6v !P * /*'3' (aDenne &ede?

You might also like