guide pascal et delphi

Upload: lyes-akram

Post on 30-May-2018

270 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Guide Pascal Et Delphi

    1/329

    Guide Pascal et Delphi

    par Frdric Beaulieu

    Date de publication : 10/04/2000

    Dernire mise jour : 01/04/2008

    Bienvenue dans le mille et unime guide pour Pascal et Delphi qui existe en ce bas monde !La profusion n'tant pas synonyme d'exhaustivit, et ne pouvant satisfaire tout le monde,ce guide se veut d'tre un parcours complet depuis presque RIEN (en Pascal, j'entends,voir les pr-requis pour le reste) vers les connaissances ncessaires un programmeurDelphi ( peu prs) digne de ce nom (modestie oblige). Le principal objectif de ce guide estainsi de vous apprendre crer des logiciels.

    http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    2/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 2 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    I - Introduction...................................................................... ................................................................................... .... 7II - Pr-requis............................................................... ........................................... .................................................... 8III - Pascal ? Delphi ?..................................................................................................................................................9

    III-A - Pascal............................................................................................... ........................................................... 9III-B - Delphi.........................................................................................................................................................10III-C - Un peu de vocabulaire..............................................................................................................................10

    IV - Premiers p as, dcouverte de Delphi............................ ................................................................................... .. 12IV-A - Ins tallation et lance ment de Delphi...........................................................................................................12IV-B - Pr emier contact avec Del phi.....................................................................................................................13IV-C - Utilisateur, Programmeur et les deux la fois..... ............................................................................ ........ 14IV-D - No tions de base de la pr ogrammation sous Delphi................................................................................. 15

    IV-D-1 - La notion de projet ........................................................................... ................................................ 15IV-D-2 - La notion de composant.............. .....................................................................................................17IV-D-3 - Proprits et vnements............................. .......................................................................... ......... 18

    IV-E - Pr emier aperu de l'i nterface de Delphi................................................................................................... 18IV-E-1 - La barre de menu s...........................................................................................................................18

    IV-E-1 -a - Menu Fichier.............................................. .......................................................................... .... 19IV-E-1 -b - Autres menus... ....................................................................... ................................................. 20

    IV-E-2 - La barre d'outils.................................. ..............................................................................................20IV-E-3 - La palette des composants........................................................................................... ................... 20IV-E-4 - L'inspecteur d'o bjets............................................................................................... .......................... 23IV-E-5 - L'diteur de code.......... ....................................................................................................................25IV-E-6 - Conclusion...... .................................................................................. ................................................ 25

    V - Prliminaire s........................... .............................................................................................................................26V-A - Donn es simples dans un programme Pascal.......................................................................................... 26

    V-A-1 - N ombres................................................... ............................................................................... .......... 26V-A-1-a - Nombres entiers........... .............................................................................................................26V-A-1-b - Nombres virgules......... ..........................................................................................................28V-A-1-c - Oprations sur les nombres...... ................................................................................................29

    V-A-2 - Caractres et chanes de caractres... ............................................................................ ................. 30V-A-3 - Boolens................................................................................. ........................................................... 31V-A-4 - T ypes numrs........ ................................................................................. ....................................... 33V-A-5 - R capitulatif....................... ............................................................................... ................................. 33

    V-B - Utilisat ions des types si mples dans l'inspecteur d'objets...........................................................................34V-C - Structu re d'un programme Pascal............................. ................................................................................ 36

    V-C-1 - Stru cture d'un fichier projet......................... ................................................................................. ..... 36V-C-2 - Stru cture d'une unit...................... .......................................................................... ......................... 38

    V-D - Constante s et Variables..................... ........................................................................................................41V-D-1 - P rliminaire : les i dentificateurs.........................................................................................................41V-D-2 - Constantes.............................................................. ...........................................................................42V-D-3 - Variables.... ........................................................................................................................................43

    V-E - Conclu sion......................... .........................................................................................................................43VI - Procdures et Fonctions...................... ............................................................................... ............................... 45

    VI-A - Proc dures....................................... ............................................................................ ............................. 45VI-B - Foncti ons.................................................... ........................................................................ ....................... 48VI-C - Premi res instructions en Pasc al................................................................................................. ............ 48

    VI-C-1 - Affectations............................ ....................................................................... .................................... 48VI-C-2 - App els de procdures et de fonctions............................................................................................. 49

    VI-D - Manip ulations................................. ........................................................................ ................................... 52VI-E - Co nclusion............................................................. ....................................................................................58

    VII - Types de d onnes avancs de Pascal Objet.. .................................................................................... ............. 59VII-A - Crat ion de nouveaux types................. ............................................................................... .................... 59VII-B - Type ordinaux............................... ....................................................................... .................................... 60VII-C - Type intervalle........................................................................ ..................................................................60VII-D - Complments sur les types numrs.......................... .......................................................................... 61VII-E - Type ensemble................................... ......................................................................................................62VII-F - Ta bleaux........................................................ .................................................................................. ......... 64

    VII-F-1 - Tableaux une seule dimension... ..................................................................................................64

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    3/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 3 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    VII-F-2 - Tableaux plusieurs dimensions.................................................................................................... 65VII-F-3 - Notions avances sur les tableaux.... ........................................... ...................................................66VII-F-4 - Tableaux de taille dynamique..........................................................................................................67

    VII-G - Enregistrements.............................................................................. ......................................................... 69VII-G-1 - Vue d'ensemble sur les enregistrements........................................................................................69VII-G-2 - Manipulation avance des enregistrements....................................................................................72

    VII-H - Type s et paramtres de procdures et fonctions ....................................................................... ............. 73VII-I - Conclusion et ret our sur terre......................................................................................... .......................... 73

    VIII - Structu res de programmation en Pascal.................. ................................................................................. ...... 74VIII-A - Structures c onditionnelles...................................................................................... ................................. 74

    VIII-A-1 - Blocs 'if'........ ...................................................................................................................................74VIII-A-2 - Blocs 'case'................................. ....................................................................................................79

    VIII.B - Struc tures itratives...................... ...........................................................................................................81VIII-B-1 - Blocs 'for'.............................. ....................................................................... ................................... 82VIII-B-2 - Blocs 'while'................................. ........................................................................... ........................ 84VIII-B-3 - Blocs 'repeat'................................. .............................................................................. ................... 89VIII-B-4 - Contrle avanc des boucles .........................................................................................................91

    IX - Manipulatio n des composants.......................... ..................................................................................................93

    IX-A - Introducti on............................................. ...................................................................................................93IX-B - Aper u de la structure interne d'un co mposant........................................................................................ 94IX-C - Manip ulation des proprits d'un c omposant....................................................................................... .... 95

    IX-C-1 - Utilisation de Delphi.............. .................................................................................... ....................... 95IX-C-2 - Utilisation du code source. ...............................................................................................................98

    IX-D - Manip ulation des mthodes d'un composant..........................................................................................102IX-E - Evne ments............................................... ..............................................................................................105

    IX-E-1 - Style de programmation vnem entiel......................................................................................... .. 105IX-E-2 - Utilisation des vnements....... ......................................................................................................106

    IX-F - Comp osants invisibles.................... .........................................................................................................108IX-G - Imbrication des composants................ ................................................................................. .................. 109IX-H - Types de proprits volus.................................................... .............................................................. 111

    IX-H-1 - Proprits de type objet....................................................................................... .......................... 111IX-H-2 - Proprits de type tableau, proprit p ar dfaut............................................................................111IX-H-3 - Proprits de type rfrence.............................................. ............................................................113

    IX-I - Conclu sion............................................... ................................................................................ ................. 113X - Dcouve rte des composants les plus utiliss - 1re partie.............................................................................. 114

    X-A - La fiche : Composant "Form"............... ....................................................................................................114X-A-1 - Manipulation Guide.......... ..............................................................................................................120

    X-B - Rfre nce des composants........................ ........................................................................ ..................... 122X-B-1 - C omposant "MainMenu"....................................... ........................................................................... 122X-B-2 - Composant "TPo pupMenu"............................................................................. ................................ 123X-B-3 - Composant "Label"................................................ .......................................................................... 124X-B-4 - C omposant "Edit".............................. ...............................................................................................127X-B-5 - C omposant "Memo"................. ........................................................................................................130

    X-B-6 - Composant "Button"............................................... ......................................................................... 132X-B-7 - Composant "CheckBox"............................................ .......................................................................136X-B-7-a - Manipulatio n guide........................................................................... ..................................... 137

    X-B-8 - Composant "RadioButton"..... ................................................................................ .......................... 140X-B-9 - C omposant "ListBox"................................ .................................................................................. ..... 141X-B-10 - Composant "ComboBox "...................................................................................... ......................... 143X-B-11 - Composant "GroupBox ".................................................................................................................145X-B-12 - Composant "Panel". .......................................................................................................................146X-B-13 - Composant "Bevel"......... ...............................................................................................................148X-B-14 - Composant "ImageLis t".................................................................................... ............................. 150

    X-C - Mini-projet....................... ..........................................................................................................................150XI - Pointeur s..................................................... ........................................................................... .......................... 151

    XI-A - Prsentation de la notion de pointeur............. ........................................................................................151XI-A-1 - nil................................................... ................................................................................... .............. 152XI-A-2 - Elments points par un pointeur................................ .................................................................. 153

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    4/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 4 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    XI-A-3 - Gestion de l'lment point par un pointeur.................................................................................. 154XI-A-4 - Utilisation de l'lment point par un pointeur............................... ................................................ 156

    XI-B - Etude de quelques types de pointeurs................................................................................................... 156XI-B-1 - Pointeurs de tableaux.....................................................................................................................156XI-B-2 - Pointeurs d'enregistrements (record)..............................................................................................157

    XI-C - Transtypage................................................................ ............................................................................ 159

    XI-D - Conclusion....... ........................................................................................................................................160XII - Objets.. ............................... ............................................................................ ................................................. 161

    XII-A - Dfinitions des notions d'objet et de classe........ ...................................................................................161XII-A-1 - Objet..................................................................................... ......................................................... 161XII-A-2 - Classe......................................................................................... ................................................... 162

    XII-B - Utilisation des objets.................... ................................................................................ .......................... 162XII-B-1 - Co nstruction et destruction........................... .................................................................................162XII-B-2 - Manipulation des objets.............. ...................................................................................................163

    XII-B-2-a - Exercice rsolu........................................................... ...........................................................165XII-C - Notions avances sur les classes .............................................................................. ........................... 168

    XII-C-1 - Hi rarchie des classes.................................................... .............................................................. 168XII-C-1-a - Concept gnral............................................................... .....................................................168

    XII-C-1-b - Classes descendantes de TForm..................................................... .................................... 171XII-C-2 - Ajout d'lments dans une classe...... ...........................................................................................172XII-C-2-a - Sections prives et publiques d 'une classe..........................................................................173XII-C-2-b - Ajout de mthodes et de variables................... ....................................................................173

    XII-C-3 - Paramtres de type objet................................ ..............................................................................176XII-C-3-a - Explications gn rales....................................................................................... ................... 176XII-C-3-b - Envoi de param tres de classes diffrentes.........................................................................177

    XIII - Utilisation des fichiers........................................................................ ............................................................ 178XIII-A - Introduction : Diffrents types de fichiers................................ ..............................................................178

    XIII-A-1 - Fichiers texte.............. ............................................................................ ...................................... 178XIII-A-2 - Fichiers squentiels................................... .................................................................................. . 178XIII-A-3 - Fichiers binaires.................................................................. ..........................................................178

    XIII-B - Manipulation des fichiers texte..................... .........................................................................................179XIII-B-1 - Ouverture et fermeture d'un fichier texte ......................................................................................179XIII-B-2 - Lecture depuis un fichier texte............................... ...................................................................... 181XIII-B-3 - Ecriture dans un fichier texte.......... ............................................................................ ................. 182XIII-B-4 - Utilisation des fichiers text e par les composants......................................................................... 183

    XIII-C - Manipulation des fichiers squentie ls......................................................................................... .......... 184XIII-C-1 - Prsentation................. .................................................................................................................184XIII-C-2 - Ouverture et fermeture d'un fichier squentie l............................................................................. 185XIII-C-3 - Lecture et criture d epuis un fichier squentiel........................................................................... 186

    XIII-D - Fichiers binaires........................................................................... .........................................................189XIII-D-1 - Prsentation....................................... ...........................................................................................190XIII-D-2 - Capture des erreurs d'entre-sortie .............................................................................. ............... 190XIII-D-3 - Lecture et criture dans un fichier binaire............ ........................................................................191

    XIII-D-3-a - Paramtres variables................................................. .......................................................... 192XIII-D-3-b - Paramtres non typs......................... .................................................................................193XIII-D-3-c - Description des deux procdures de lectur e et d'criture....................................................193

    XIII-D-4 - Lecture et criture des diffrent s types de donnes.................................................................... 193XIII-D-4-a - Complments sur les type s de donnes............................................................................. 193XIII-D-4-b - Prliminaires............................... ..........................................................................................195XIII-D-4-c - Types simples : entiers, rels et boolens...........................................................................195XIII-D-4-d - Types numrs................. ......................................................................... ........................ 200XIII-D-4-e - Types chane de caractres.... ......................................................................... ................... 202XIII-D-4-f - Autres types............ .......................................................................... .................................... 205XIII-D-4-g - Structures avances dans des fichiers binaires.................................................................. 205

    XIV - Dcouvert e des composa nts les plus utiliss - 2me partie......................................................................... 206XV - Manipu lation de types abstraits de donnes....................... ...........................................................................207

    XV-A - Introductio n............................................................................. ............................................................... 207XV-B - P iles........................ ......................................................................... ...................................................... 208

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    5/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 5 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    XV-B-1 - Prsentation...................................................................................................................................208XV-B-2 - Une dfinition plus formelle............... ........................................... .................................................208XV-B-3 - Implmentation d'une pile avec un tableau...................................................................................209XV-B-4 - Complments sur les pointeurs : chanage et gestion de la mmoire.......................................... 214XV-B-5 - Implmentation par une liste chane...........................................................................................216

    XV-C - Files.................................................................................... ................................................................... 220

    XV-C-1 - Prsentation et dfinition........................................................................................ ...................... 220XV-C-2 - Implmentation d'une file pa r une liste chane........................................................................... 221

    XV-D - Liste s................................................ ......................................................................................................226XV-D-1 - Prsentation et dfinition........................... ........................................................................... ........ 226XV-D-2 - Notions de tri....... ..........................................................................................................................228XV-D-3 - Implmentation par un tableau...................................................................................... ............... 230XV-D-4 - Implmentation par une liste chane...........................................................................................234XV-D-5 - Implmentation permett ant diffrents tris......................................................................................242

    XV-D-5-a - Prsentation....... ...................................................................................................................242XV-D-5-b - Paramtres f onctionnels............................................................................. .......................... 243XV-D-5-c - Implm entation du tri la demande.....................................................................................244

    XV-E - Arbres........................ .............................................................................................................................247

    XV-F - Arbre s binaires................................. ......................................................................................................250XV-G - Mini-projet : calculatrice................... ......................................................................................................254XVI - Programm ation l'aide d'objets................................................................... ................................................. 255

    XVI-A - Introduction.............................. ........................................................................... .................................. 255XVI-B - Con cepts gnraux.......................... .....................................................................................................255

    XVI-B-1 - De la programmation traditionnelle la program mation objet..................................................... 255XVI-B-2 - La programmation (oriente ?) objet................. ...........................................................................255XVI-B-3 - Classes......................................................... ................................................................................256XVI-B-4 - Ob jets............................................. ................................................................................ .............. 260XVI-B-5 - Fo nctionnement par envoi de me ssages..................................................................................... 260XVI-B-6 - Constructeur et Des tructeur...................................................................... ................................... 261

    XVI-C - Base s de la programmation objet sous Delphi........ ...................................................................... ...... 261XVI-C-1 - Prliminaire : les diffrentes versions de Delphi.................................................. ........................261XVI-C-2 - Dfinition de classes.................................. ..................................................................................262XVI-C-3 - Dclaration et utilisation d'obje ts........................................................................................... ...... 264XVI-C-4 - Utilisation d'un constructeur et d'un destructeur, notions s ur l'hritage....................................... 271XVI-C-5 - Visibilit des membres d'une classe....................... .....................................................................274XVI-C-6 - Proprits........................................... ....................................................................... ................... 277

    XVI-C-6-a - Proprits simples.......................................... ..................................................................... 277XVI-C-6-b - Proprits tableaux..............................................................................................................282XVI-C-6-c - Proprit tab leau par dfaut................................................................................................285

    XVI-C-7 - Mini-projet n5 : Tableaux associatifs.............. ............................................................................ 287XVI-D - Notions avances de programmation objet.................................................... ......................................287

    XVI-D-1 - Retour sur l'hritage..... ................................................................................................................287XVI-D-2 - Polymorphisme. ............................................................................................................................288

    XVI-D-3 - Surcharge et redfinition des mthodes d'une classe................................................................. 290XVI-D-4 - Mthodes abstraites............ .........................................................................................................292XVI-D-5 - Mthodes de class e.....................................................................................................................296

    XVI-E - Conclusion....... ....................................................................... .............................................................. 297XVII - Liaison DDE ............................................................................ ......................................................................298

    XVII-A - Prsen tation.................................................. ............................................................................... ........ 298XVII-A-1 - Introduction........................ ..........................................................................................................298XVII-A-2 - Composants.......................................................... .......................................................................299XVII-A-3 - Utilisation.......................................................... ...................................................................... ..... 300

    XVII-B - Part ie Serveur................................................ ......................................................................................300XVII-C - Par tie Client........................ ......................................................................... ........................................ 300XVII-D - Cas particulier : Serveur Non-Delphi.... ...............................................................................................302

    XVII-D-1 - Serveur Non-Delphi.....................................................................................................................302XVII-D-2 - Client Non-Delphi............................................................ ............................................................ 303

    XVII-E - Con clusion............................................ ............................................................................ ................... 304

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    6/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 6 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    XVIII - DLL...............................................................................................................................................................305XVIII-A - Introduction.............................................. ........................................... ................................................ 305XVIII-B - Ecriture des DLLs & Utilisation...........................................................................................................305

    XVIII-B-1 - DLL de fonction..........................................................................................................................305XVIII-B-2 - Thorie & Subtilit......................................................................................................................308XVIII-B-3 - DLL de Classe...................................................................................... ..................................... 309

    XVIII-B-4 - DLL de Composant..................................................................................... ............................... 312XVIII-B-5 - DLL & Chane de caractre....................................................................................................... 314

    XVIII-C - Chargement statique/dynamique............................................................ ............................................ 316XVIII-D - DLL et Autres Langages.................................................................................................................... 318XVIII-E - Conclusion............................................................................... ........................................................... 319

    XIX - Gestion des exceptions............................................................................. .................................................... 320XIX-A - Introduction............................................................... ............................................................................ 320XIX-B - Try..Finally.............................................................................................................................................321XIX-C - Try..Except............................................................................................................................................322

    XIX-C-1 - Grammaire....................................................................................................................................322XIX-C-2 - Listes non exhaustive de classe d'exception...............................................................................323

    XIX-D - Exception personnalise.......................................................................................................................324

    XIX-E - Raise............................................................................... ...................................................................... 325XIX-F - Conclusion.............................................................................................................................................326XX - TFileStream.....................................................................................................................................................327

    XX-A - Introduction............................................................... ............................................................................. 327XX-B - Lecture..................................................................... .............................................................................. 327XX-C - Ecriture...................................................................................................................................................329XX-D - Conclusion......................................................................................... .................................................... 330

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    7/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 7 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    I - Introduction

    Voici des sujets qui ne seront (hlas) PAS abords (car non matriss par votre serviteur, savoir moi) :

    Bases de donnes

    Programmation pour Internet Programmation multi-thread

    Si vous voulez de la documentation l-dessus, il faudra aller voir ailleurs, dsol.Ce guide est conu comme un vrai cours : il est dcoup en chapitres comportant chacun du cours, des exerciceset les corrigs dtaills. L'ensemble est prvu pour tre suivi dans l'ordre des chapitres, mais rien ne vous oblige respecter cet ordre si vous matrisez dj tout ou partie des notions vues dans un chapitre particulier.Des propositions de mini-projets (non rsolus entirement) sont galement prsentes dans le guide. Le but des mini-projets est de crer un logiciel permettant de rsoudre un problme. Le principe est ici trs diffrent des exercicesrsolus : vous ralisez un mini-projet partir d'un cahier des charges. L'objectif est atteint lorsque le logiciel crparvient traiter le problme dcrit dans le cahier des charges, et ceci quelle que soit cette manire. Pour l'instant,

    si vous voulez tre corrig ou demander des conseils, contactez-moi .La version de Delphi qui a t utilise pour raliser les exemples, les captures d'cran et les corrigs est la version 5anglaise. Si vous avez la version franaise, c'est mieux pour vous, sinon, une autre version de Delphi peut convenirmais certaines commandes auront des noms lgrement diffrents ou seront tout simplement inaccessibles (voir lespr-requis pour plus d'informations).Voici quelques styles de prsentation destins vous donner des repres dans le guide.

    Encadr : Dans ce genre d'encadr seront prsentes des informations plus techniques sous la mention 'Approfondissement'. Des rvisions rapides seront galement proposes sur diffrents sujets utiliss pendant le guide.

    Ce genre de paragraphe contiendra du texte crit en langage Pascal . Vous pourrez effectuer uncopier-coller pour prendre le code et le placer sous Delphi sans avoir le taper vous-mme(ce qui ne doit pas vous dispenser de le faire une fois de temps en temps).

    Les parties entre crochets [] sont optionnelles, les textes crits en italique sont des raccourcis pour dsigner d'autresstructures. Il faudra inclure ces structures et non le texte en italique.L'un des principes de base de ce guide est de ne pas prendre l'utilisateur de haut. Si vous avez l'impression d'trepris de haut pendant votre lecture, n'hsitez pas me contacter pour mettre les choses au point. De cette manire,chacun profitera des corrections effectues dans le guide (je ne garantis nulle part que tout ce qui est crit ici necomporte pas d'erreur, les suggestions de corrections seront donc les bienvenues).Enfin, car je commen ce m'terniser, ce guide est conu pour avancer lentement mais srement. Certains d'entrevous trouverons au cours du guide que je ne le fais pas avancer assez vite. Que ceux d'entre vous qui pense qu'aller

    vite peut mener quelque part se rassurent : il existe beaucoup d'autres sites sur internet qui combleront leur attenteet peut-tre mme plus. Je me bornerai pour ce guide avancer pas mesurs pour ne lcher personne en coursde route, alors, bon courage et bonne lecture !

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide//?page=page_2#LIIhttp://fbeaulieu.developpez.com/coords.htmlhttp://fbeaulieu.developpez.com/guide//?page=page_2#LIIhttp://fbeaulieu.developpez.com/coords.htmlhttp://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    8/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 8 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    II - Pr-requis

    Certains diront : "Vous avez dit dans l'introduction qu'on pouvait partir de rien !". Eh bien, au niveau connaissancessur la programmation, c'est vrai. Par contre, il vous faut avant de commencer ce guide (la liste parat longue, maisne vous affolez surtout pas) :

    Un ordinateur avec les logiciels suivants :

    Microsoft Windows 95 ou suprieur (98, 98 SE, Millenium, XP...) ou Microsoft Windows NT 4 ouWindows 2000 (non test).

    Borland/Inprise Delphi version 2 ou suprieure (3, 4, 5, ...) pour suivre le guide.La version 5 est ncessaire pour pouvoir utiliser les exemples tlchargeables ici.La langue du logiciel est sans importance, mais le franais est recommand pour dbuter.

    Il va sans dire que vous devez savoir utiliser au moins un peu ces logiciels. Des connaissances minimales en informatique gnrale. Vous devez savoir ce que dsigne chacune des

    expressions ci-dessous :

    Windows

    Fentre, boite de dialogue

    Logiciel, Application

    Menus, barre d'outils, boutons, cases cocher, info-bulle, liste, liste droulante ( combo ), icne

    Vous devez savoir utiliser un ordinateur (clavier : touches Ctrl, Alt, Shift ; souris : clic, un double clic, un clicdroit), Windows, l'Explorateur.

    Un sens de la logique suffisamment dvelopp (la programmation fait largement appel la logique).Quelques rappels seront cependant faits au cours du guide.

    Quelques connaissances en anglais (au moins quelques mots).Chaque mot anglais prsent dans le guide sera traduit en franais au moins une fois. Il vous incombe decomprendre ces mots les fois suivantes.

    De la patience, du courage, de la volont, un rien de persvrance et du self-control quand vos premiers"bugs" (dfinition du premier dictionnaire venu : erreur de rdaction d'un logiciel entranant desdysfonctionnements ) apparatront (vous noterez que je n'ai pas dit si mais quand : des bugsfinissent toujours par faire leur apparition).

    Du temps...

    Bon courage !

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    9/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 9 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    III - Pascal ? Delphi ?

    L'objectif de ce guide est de crer des logiciels et non plus de simplement les utiliser. Un moyen pour crer un logicielest d'utiliser un langage informatique, traduit ensuite par l'ordinateur pour en faire un logiciel. C'est le moyen explordans ce guide : l'utilisation d'un langage de programmation informatique. Le langage tudi ici, c'est Pascal . C'est

    un langage qui permet d'crire des logiciels. Delphi , c'est le logiciel que vous allez employer pour crire destextes dans ce langage (entre autres).

    III-A - Pascal

    Pascal, c'est ainsi le nom du langage que vous allez dcouvrir dans ce guide. Comme tout langage, il a ses rgles,sa syntaxe, ses structures, ses limites, ses exceptions (mais ce ne sont pas celles qu'on croit, nous le verrons plusloin). Pascal est utilis pour communiquer avec l'ordinateur : c'est vous de vous adapter en lui parlant dans unlangage qu'il puisse comprendre.Attention toutefois, en tant que programmeur, votre interlocuteur est l'ordinateur, et non pas le ou les utilisateurs deslogiciels que vous crivez. Il s'agit l d'une distinction subtile qu'il faut faire tout de suite : au moment o l'utilisateurfera ce qu'on attend de lui, savoir utiliser un de vos logiciels, vous ne serez pas prsent (ni pour lui expliquerce qu'il faut faire, ni pour corriger les problmes poss). Il faudra donc avoir dit prcisment l'ordinateur ce qu'ilconvient de faire.En effet, l'ordinateur n'acceptera pas de fautes de langage, mais il vous obira au doigt et l'#il. Mais il y a unecontrepartie : si vous lui dites de faire des neries dans un langage des plus corrects (au niveau syntactique), il lefera, et peu lui importe les consquences, il n'y aura que vous et vos utilisateurs que a drangera !

    Approfondissement (facultatif): Pascal n'est pas unique : il existe d'autres langages de programmation informatique.Vous avez peut-tre entendu d'autres noms de langages (informatiques), parmi lesquels l'assembleur, le Basic (et le Visual Basic), le C (et son grand frre le C++), le Java,le Lisp, Le Perl, etc. Ces langages, de principes, de domaines d'utilisations et de puissances varis, ne peuvent pas tous tre compris par l'ordinateur, qui comprend un unique langage : le langage machine, directement excut par le microprocesseur, mais absolument imbuvable.Pourquoi alors parler du langage machine ? Parce que c'est dans ce langage que Pascal devra tre traduit avant d'tre excut. Cette traduction sera effectue par Delphi de faon trs pratique et presque invisible pour vous et est nomme compilation. Le logiciel utilis par Delphi et qui est charg de cette traduction est nomm compilateur. Le rsultat d'une compilation sera pour nous un logiciel, qui se prsentera sous la forme d'un fichier avec l'extension .EXE

    Pascal est un langage dit de type impratif . N'ayez pas peur de ce terme barbare qui veut simplement dire queles logiciels que vous crirez le seront au moyen de suites d'instructions (regroupes dans des structures que noustudierons) qui seront excutes une par une par l'ordinateur (dans un ordre qu'il sera possible de contrler) : vous

    direz pas pas l'ordinateur ce qu'il convient de faire.Voici un premier texte crit en langage Pascal : examinez-le loisir sans essayer de comprendre la syntaxe ni lasignification exacte de chaque partie (il fait ce qu'il semble suggrer, savoir l'addition de deux nombres) :

    function Addition (Nombre1, Nombre2: Integer ): Integer ; begin

    Result := Nombre1 + Nombre2;end ;

    Pascal est un langage constitu de mots, organiss en structures (pas vraiment des phrases). Ces mots sont rpartisd'une part en mots rservs, c'est--dire en mots dont le sens et l'usage sont dtermins une fois pour toutes. Dansle morceau de texte ci-dessus, les mots rservs sont en gras (procedure, begin, end). Ces mots sont la base

    du langage.

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    10/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 10 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    Le reste des mots utiliss est spar en deux groupes : les mots fournis par le langage, tels Integer ou Result et les autres, crs par le programmeur ( savoir vous ) suivant des rgles que no us apprendrons. Ne vous inquitezpas : ces deux derniers groupes ne sont pas discernables l'#il nu par vous pour l'instant, mais ils le deviendrontau fil du guide.Au niveau de la prsentation, le langage Pascal ne fait pas de distinction entre une majuscule et une minuscule. Ainsichaque mot du langage pourra tre crit avec ou sans majuscules. Vous remarquez galement que des espaces et

    des retours la ligne judicieusement placs permettent d'avoir quelque chose de plus agrable que ce qui suit (etpourtant, l'extrait ci-dessous serait accept et ferait exactement la mme chose que le premier extrait) :

    procedure Addition(Nombre1,Nombre2: Integer ): Integer ; beginResult:=Nombre1+Nombre2; end ;

    Le langage Pascal va nous servir crire des programmes. Un programme est un texte plus ou moins long,entirement crit en Pascal. On peut y inclure beaucoup de choses, et entre autres des instructions qui serontexcutes par l'ordinateur. Le premier extrait de code (ou le deuxime, mais le premier est nettement prfrable) estun morceau de programme. Ces programmes seront utiliss comme matire premire pour la cration des logiciels.

    III-B - Delphi

    Delphi est le nom d'un logiciel actuellement largement employ pour crer des logiciels. Delphi permet d'utiliser lelangage Pascal. Il faut bien comprendre que Pascal et Delphi NE SONT PAS une seule et mme chose : Pascal est unlangage informatique, Delphi est un logiciel destin crer des logiciels avec ce langage. Delphi n'est qu'un enrobage,une enveloppe de confort autour de Pascal, c'est--dire qu'il simplifie de nombreuses tches lies la programmationen langage Pascal. Un autre fait qu'il faut noter est que Delphi est destin crire des programmes fonctionnantexclusivement sous Windows. Nous ne nous intresseront donc dans ce guide qu' Windows (et seulement Windows 95 ou ultrieur).

    Note aux programmeurs en assembleur et aux utilisateurs de Turbo Pascal pour DOS ou Windows : Delphi va un peu plus loin que le Pascal utilis dans Turbo Pascal ou Borland Pascal en inventant une nouvelle syntaxe, plus souple, ouverte et puissante : le langage employ dans Delphi est en fait le Pascal Objet. Si vous connaissez dj bien le Pascal, le Pascal Objet ne vous apportera que peu de surprises, et souvent de trs bonnes. Sinon, le Pascal Objet est tout ce que vous avez besoin de connatre car seule la nouvelle syntaxe est reconnue par Delphi.Delphi permet en outre l'insertion de code crit en assembleur 32 bits, mais il faut limiter cette possibilit des cas trs restreints.

    Comme beaucoup de logiciels, Delphi existe en plusieurs versions. Actuellement des versions numrotes de 1 5existent. Ces versions successives du logiciel ont vu de nombreuses amliorations, tant cosmtiques, qu'au niveaudu langage. La version la plus leve est la plus intressante, car permet toujours plus de choses. Certains aspects

    du langage vus dans les derniers chapitres sont rservs Delphi 5 ou ultrieur (ce sera signal).Nous aurons, tout au long du guide, de nombreuses occasions d'utiliser Delphi, ce qui vous permettra de vous habituerpetit petit ce fantastique logiciel.

    III-C - Un peu de vocabulaire

    L'informatique, en tant que science, a son propre jargon, qu'il est ncessaire de connatre. Les quelques termesqui suivent sont des incontournables. Lorsque vous les rencontrerez, vous devrez savoir ce qu'ils signifient. Lesdfinitions ci-dessous ne sont valables qu' l'intrieur du guide (et sont souvent utilises en dehors !) : Programme : texte crit dans un langage informatique, comportant dans notre cas des instructions structures(organises en structures). Il est destin tre converti par Delphi en un logiciel utilisable sous Windows. Dvelopper en Delphi : crire des programmes en utilisant le langage Pascal. Par abus, on confond le langage(Pascal) et le logiciel (Delphi) qui le gre, et on parle de dvelopper, plutt que de programmer. Application : Logiciel fonctionnant sous Windows.

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    11/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 11 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    Projet : c'est la base d'une application. Sous Delphi, pour crer une application, on constitue d'abord un projet,constitu de divers morceaux (notion importante vue plus loin). Code , Code Pascal , Code source : morceau de programme, texte d'un programme crit en Pascal. Interface (utilisateur) : la partie d'un logiciel qui est visible par l'utilisateur, l'oppos du code source, invisible l'utilisateur. Fiche : fentre l'tat non compil. Les fiches sont les alter ego sous Delphi des fentres sous Windows.

    Le schmas suivant tente de reprendre les termes mentionns ci-dessus :

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    12/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 12 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    IV - Premiers pas, dcouverte de Delphi

    IV-A - Installation et lancement de Delphi

    Rvision clair : Rpertoires et Fichiers Votre ordinateur possde au moins un disque dur. Ce disque est souvent accessible par une lettre de lecteur (prsente dans le poste de travail, dans l'explorateur) qui est souvent C (le disque dur est alors nomm C:).Le lecteur C: est, comme tous les supports informatiques classiques (Disque durs,disquettes, CD-Roms, ZIP, DVD-Rom) organis la manire d'un gigantesque classeur.Il contient une racine, appele aussi rpertoire racine, qui obit la mme rgle que les rpertoires (appels aussi dossiers). Cette rgle est : elle (la racine) ou il (le rpertoire)peut contenir des rpertoires et des fichiers.Sous Windows 95 ou ultrieur, les fichiers et les rpertoires sont nomms avec beaucoup moins de rigueur qu'avant (8 caractres, un point et une extension de 3 caractres dfinissant classiquement le type de fichier, les noms de rpertoires tant gnralement privs d'extension). Les noms peuvent maintenant comporter plus de 8 caractres, et les caractres autoriss augmentent en nombre, avec les espaces, les lettres accentus,les majuscules et minuscules. Une rgle qui reste d'actualit est l'extension : elle suit toujours le nom du fichier, prcde d'un point, et comporte trois caractres (quoique cette limitation trois caractres n'est plus obligatoire mais recommande). Cette extension indique toujours le type de fichier.Un fichier peut tre donn directement ou en fonction du rpertoire dans lequel il se trouve.Prenons un fichier exemple 1.doc . S'il est situ la racine du disque C:, son nom complet sera : C:\exemple 1.doc . S'il est dans le rpertoire Mes Documents , lui- mme la racine du disque, le nom complet du fichier devient alors C:\Mes Documents \exemple 1.doc .Vous connaissez peut-tre l'invite MS-Dos, pour l'avoir connue avant Windows 95 ou seulement aprs. Dans les deux cas, tout nom de fichier comportant des caractres

    interdits avant Windows 95 (tels les espaces, les caractres accentus) devra tre donn entre guillemets : " ".(Il n'est pas question ici de vous apprendre les commandes DOS, pour cela, consultez un manuel ou l'aide de Windows)

    Si vous utilisez Delphi la fac ou tout autre lieu o Delphi est directement accessible, vous pouvez passer ceparagraphe puisque Delphi est probablement directement accessible sur les ordinateurs. Vous ne pourrez et nedevez pas en gnral installer de logiciels sur ces ordinateurs pour viter les risques d'infection par d'ventuels virus.Sinon, selon la version de Delphi que vous possdez, le fichier lancer change en gnral assez peu, gnralement,c'est setup.exe ou install.exe . L'installation vous propose un certain nombre d'options, comme l'emplacement deDelphi sur votre disque, ou les composantes de Delphi installer. Un bon choix pour le rpertoire est quelque chosede court n'utilisant pas de noms longs (par exemple : un rpertoire BORLAND ou INPRISE la racine de votre disquedur, puis un rpertoire DELPHI o vous installez Delphi), parce que vous aurez un jour besoin (quoique ce besointende disparatre avec les versions rcentes de Delphi) de vous balader dans le rpertoire en mode DOS, et quetaper des noms longs sous DOS n'est pas un sport trs agrable pratiquer (imaginez vous simplement taper lacommande :

    cd "program files\borland\delphi 6\source\rtl\win"

    Avec les choix que je vous ai donn, vous taperez plutt :

    cd borland\delphi\source\rtl\win

    Ce qui est quand mme plus court, et vous comprendrez rapidement qu'un minimum de paresse (mais n'allez pasme faire dire plus) en informatique ne fera de mal personne et surtout pas vous.

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    13/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 13 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    D'autre part, parmi les options d'installation, assurez-vous bien d'inclure toute l'aide possible (l'aide de Delphi et celledes API Windows, mme si cela ne vous dit encore rie n), l'diteur d'images (si cett e option est propose), et le sourcede la VCL (disponibles dans toutes les version sauf les versions standard. Ces lments seront dcrits et utilissplus tard. Ils sont d'une importance non ngligeable et une source irremplaable pour les plus curieux d'entre vous).L'installation requiert pas mal de place suivant les versions (jusqu' 200-300 Mo) mais est justifie par la plthored'outils qui sont mis votre disposition, et dont vous n'apprcierez la puissance qu' l'usage.

    L'installation termine, des raccourcis ont t crs pour vous dans le menu Dmarrer de Windows. Si Delphi a tinstall par quelqu'un d'autre que vous, parcourez le menu Dmarrer la recherche des icnes de Delphi, et lancez lelogiciel (raccourci nomm Borland Delphi x ou Borland Developer Studio x o x dsigne le numro de version.

    IV-B - Premier contact avec Delphi

    Une fois lanc, le logiciel que vous allez utiliser tout au long de votre initiation apparat : Delphi. La capture d'crandisponible ci-dessous (cliquez sur la petite image pour afficher la grande) montre Delphi 5 (version anglaise) tel qu'ilest prsent aprs un dmarrage normal (votre version peut seulement ressembler la capture d'cran, avec desdiffrences mineures, notamment dans les menus, les icnes de la barre d'outils et la disposition des fentres) :(Note : si vous n'avez pas du tout cette prsentation, c'est que quelqu'un s'est plu tout dplacer. Il est galementpossible qu'un programme prcdemment cr s'ouvre nouveau, dans ces cas, cliquez sur Fichier, puis NouveauProjet ou Nouvelle Application)

    (Cette capture montre Delphi 5)

    Le texte rouge indique les parties que vous devez pouvoir reprer ds prsent, sans avoir connatre encore leurutilit :

    Barre de menus

    Barre d'outils

    Palette des composants

    Editeur de code source (s'il n'est pas vi sible, ce n'est pas grave pour l'instant, il le se ra bientt)

    D'autres fentres flottantes (que vous pouvez dplacer) peuvent tre prsentes sur votre cran. Entre autresl'inspecteur d'objet ( gauche) et une fiche (fentre) vide ( droite) comme ci-dessous :

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide//images/delphi_nouvelle_appli.pnghttp://fbeaulieu.developpez.com/guide//images/Inspecteur_d_objets_par_defaut.pnghttp://fbeaulieu.developpez.com/guide//images/delphi_nouvelle_appli.pnghttp://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    14/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 14 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    Rappelez-vous que vous allez crer des logiciels pour Windows. Ils pourront donc contenir les effets visuels prsentsdans les autres applications fonctionnant sous Windows, tels les fentres, les cases cocher, les boutons, les menus,les barres d'outils, les infos-bulles : tout ce qui fait d'une application une application Windows.Delphi permet de crer une application (un logiciel, donc) la fois, mais permet de crer simultanment les deuxaspects interdpendants d'une application :

    1 le cot visible (l'interface, pour les utilisateurs du logiciel) (repensez aux fiches du schmas dans le III.C.2 le cot invisible (l ou se situe l'intelligence du logiciel) constitu en grande partie de programmes (cf. III.C)

    Pour crer un logiciel en utilisant Delphi (on dira plutt sous Delphi), il faut crer ces deux parties en mme temps(c'est--dire que les deux parties visibles et invisibles, loin d'tre indpendantes, sont vraiment lies dans le senso la partie visible n'est qu'une faade, un masque sous lequel la partie invisible fait tout le travail. C'est le schmade l'iceberg : l'utilisateur ne devra voir que la partie au dessus de l'eau, il n'aura pas se soucier et devra ignorerce qu'il y a sous l'eau, domaine rserv au programmeur (on dit galement dveloppeur) que vous tes dsormais.La partie immerge, bien qu'invisible, prend plus de place, contrle ce qui est visible au dessus de l'eau et permet l'iceberg de flotter sans couler !

    IV-C - Utilisateur, Programmeur et les deux la fois

    En tant que programmeur, vous tes obligatoirement et d'abord un utilisateur : c'est trs certainement vous qui alleztester vos logiciels (avant de les lcher dans la nature, si telle est votre intention, et ce devrait toujours tre une devos intentions), en les utilisant.C'est l que le challenge commence pour le programmeur : alterner les deux casquettes d'utilisateur et deprogrammeur est plus dlicat qu'il n'y parat, parce qu' on s'habitue peu peu l'interface qu'on cre de ses mains ,au point de prendre des rflexes conditionns et de croire videntes des choses qui ne le sont pas. On impose alorsdes cheminements incohrents ou inconsistants l'utilisateur. Pour illustrer ce pige, prenons un exemple simple :

    A la cration de cette fentre, le programmeur tient pour vident que la zone de saisie en haut de la fiche est destine recevoir le nom du support, et que celle du dess ous recevra le mme nom au pluriel. R sultat : aucun texte explicatif

    ne vient le dire sur la fentre, et un utilisateur en manque d'imagination ne saura pas quoi crire, donc n'criraprobablement rien de peur de se tromper, et se verra dans ce cas adresser un message d'erreur du style Vous

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide//images/fiche_vide.pnghttp://fbeaulieu.developpez.com/guide//images/fiche_vide.pnghttp://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    15/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 15 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    devez indiquer un nom pour le support ! . Imaginez-vous dans cette situation : frustration ou dgot ? La solutionau problme est ici de rduire la taille des deux zones de saisie afin d'crire No m (singulier) et Nom (pluriel) .(n'essayez pas encore d'effectuer de manipulations dans Delphi, cela sera vu en dtail dans la suite du guide). Aucontraire, la case cocher du dessous est bien signalise, l'utilisateur sait ce qu'il active comme option en la cochant.Delphi met votre disposition tout un arsenal (et je vous assure que le mot n'est pas trop faible) d'outils pour raliserune interface (partie d'un logiciel rserve aux utilisateurs) fouille, prcise et agrable. Mais ceci a un prix : vous

    devez savoir vous servir de Delphi pour apprcier la puissance qui est mise votre disposition.Dans la partie qui vient, quelques principes de Delphi vont tre abords. Cette partie que vous allez peut-tre trouverfastidieuse est un passage oblig pour bien comprendre l'interface de Delphi qui sera examine ensuite.

    IV-D - Notions de base de la programmation sous Delphi

    IV-D-1 - La notion de projet

    Delphi permet de crer une seule application (un futur logiciel) la fois, ouverte en tant que projet. Un projet estl'tat non compil d'une application (d'un logiciel). Chaque projet compil devient une application. Concrtement, unprojet se compose d'un certain nombre de fichiers et d'options (galement stockes dans des fichiers). Une sagehabitude est de consacrer compltement un rpertoire (dossier) chaque application qu'on souhaite programmer(chaque projet). Ce rpertoire contiendra tous les fichiers constituant le projet (le nombre de fichiers augmentera aufur et mesure que le projet s'toffera).Une application Windows est constitu exclusivement de fentres. Tout ce qu'un logiciel vous montre est contenudans une fentre (mme si elle est parfois bien dguise). Les logiciels simples peuvent ne contenir qu'une fentre.Ceux qui sont plus compliqus peuvent en contenir des dizaines (rarement plus).Un projet non compil (c'est--dire avant sa transformation en logiciel), contient ces fentres ( l'tat non compilesgalement) : les fiches. Comprenez bien que chaque fentre que vous voudrez dans votre logiciel existe d'abordsous forme de fiche. Cette fiche, lors de la compilation du projet en application, sera transforme en fentre.A chaque fiche est adjointe une (et une seule) unit, c'est--dire un texte crit en langage Pascal, qui contiendra toutce qui se rapporte cette fiche : ce qu'elle contient (boutons, menus, cases cocher, #), ce qui doit se passer danscertaines situations (lorsqu'on clique sur un bouton par exemple), et encore bien d'autres choses.

    Au niveau informatique, chaque fiche est stocke dans un fichier (ce fichier ne contient que cette fiche et rien d'autre)comportant l'extension 'DFM' (par exemple Options.dfm ). Chaque unit est galement stocke dans un fichierne contenant que cette unit et portant l'extension 'PAS' (par exemple Principale.pas ). La fiche et son unitassocie portent le mme nom (mais pas la mme extension) (Delphi ne demande ce nom qu'une seule fois et l'utiliseautomatiquement pour l'unit et la fiche, ainsi vous n'avez aucun risque de vous tromper). Par exemple, si une ficheest stocke dans le fichier nomm FichePrinc.dfm , son unit associe sera stocke dans le fichier nomm FichePrinc.pas .Comme un schma vaut souvent mieux que de longues explications, voici :

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    16/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 16 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    Il est galement possible d'utiliser des units qui n'ont pas de fiche associe. Ceci est utile par exemple pourrassembler des morceaux de programme qui n'ont au cun rapport avec une quelc onque fiche, telles des algorithmesde calcul mathmatique. Le fichier qui contient cette unit porte l'extension 'PAS', comme s'il avait une fiche associe,mais il n'en a pas : il n'y a pas de fichier nomm identiquement, mais avec l'extension 'DFM'.Un projet sous Delphi est constitu d'un fichier-projet (portant l'extension 'DPR'), d'units et de fiches. Chaque fichea son unit correspondante, mais certaines units n'ont pas, comme on l'a vu ci-dessus, de fiche associe (il y a

    toujours au moins autant d'units que de fiches dans un projet, et souvent plus). Pensez en outre donner des nomsdescriptifs, ou au moins significatifs lors des enregistrements des units ou des fiches (Ainsi, unit1.pas est unbien mauvais choix !).Lors de la compilation du projet (transformation en application), d'autres fichiers seront crs : des fichiers DCU(fichiers portant l'extension 'DCU', essayez de vous habituer ces abus de langage). Ces fichiers sont la formecompile des fichiers de mme nom qui portent les extensions 'PAS' et 'DFM' : un 'PAS' (avec son 'DFM' associs'il y en a un) est transform en 'DCU' lors de la compilation. Un fichier 'EXE' est enfin cr si la compilation atteintson terme (si tous les fichiers 'DCU' ont pu tre crs). Ce fichier est nomm avec le mme nom de base que celuidu fichier projet (fichier DPR).Le schma ci-dessous reprsente la transformation d'un projet en application, avec les lments que vous devezdsormais connatre. Ce projet comporte deux fiches (avec les units associes) ainsi qu'une unit seule :

    Lors des enregistrements successifs d'un projet, d'autres fichiers avec des extensions ~DP, ~DF, ~PA, ~DC, ~DPR,~DFM, ~PAS, ~DCU sont crs : ce sont des copies de sauvegarde (des versions plus anciennes) des fichiers portant

    le mme nom, sans le signe tilde (~)(exemple : optionsaffich.~PA est une copie de sauvegarde de optionsaffich.pas )Enfin, d'autres fichiers ayant le mme nom que le fichier projet (celui qui porte l'extension DPR) mais avecl'extension .RES, .OPT, .CFG, .DOF, .DSK, .DSM sont crs dans certaines circonstances. Vous n'avez pas voussouciez de ces fichiers.Le tableau suivant donne une liste aussi complte que possible des fichiers pouvant tre rencontrs dans le rpertoired'un projet Delphi :

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    17/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 17 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    Extension du fichier Description et CommentairesDPR ( Delphi PR oject)

    Contient l'unit principale du projetPAS ( PAS cal)

    Contient une unit crite en Pascal. Peutavoir un .DFM correspondant

    DFM (Delphi ForM : fiche Delphi)Contient une fiche (une fentre). Le .PAScorrespondant contient toutes lesinformations relatives au fonctionnementde cette fiche, tandis que le .DFM contientla structure de la fiche (ce qu'elle contient,sa taille, sa position, #). Sous Delphi 5,les .DFM deviennent des fichiers texte qu'ilest possible de visualiser et de modifier. Lamme manipulation est plus dlicate maispossible sous Delphi 2 4.

    DCU (Delphi Compiled Unit : Unit compile

    Delphi)Forme compile et combine d'un .PAS etd'un .DFM optionnel

    ~??? Tous les fichiers dont l'extension commencepar ~ sont des fichiers de sauvegarde,pouvant tre effacs pour faire place propre.

    EXE Fichier excutable de l'application. Ce fichierest le rsultat final de la compilation etfonctionne sous Windows exclusivement.Pour distribuer le logiciel, copier ce fichierest souvent suffisant.

    RES ( RES source)

    Fichier contenant les ressources del'application, tel son icne. Ce fichier peuttre dit avec l'diteur d'images de Delphi.Ces notions seront abordes plus loin dansce guide.

    DOFDSKCFG

    Fichiers d'options : suivant les versions deDelphi, ces fichiers contiennent les optionsdu projet, les options d'affichage de Delphipour ce projet, ...

    Lorsque vous aurez atteint des projets assez importants en taille (donc en nombre de fichiers), il pourra treavantageux de rgler Delphi pour qu'il place les fichiers DCU d'une part, et le fichier EXE d'autre part, dans d'autres

    emplacements. Ceci permet de bien ranger les fichiers d'un projet. Cette manipulation sera dcrite plus tard dansle guide.

    IV-D-2 - La notion de composant

    Les plus attentifs auront certainement dj fait le rapport avec une certaine Palette des composants djmentionne prcdemment, et qui le sera plus en dtail dans un avenir trs proche.Nous avons dj vu que Delphi permet de crer des programmes (on assimile souvent, par abus, le terme programmeet le terme logiciel. Ici, les programmes mentionns dsignent des logiciels et non des textes en Pascal commevous l'avez vu plus tt) sous Windows, avec la possibilit d'utiliser ce que propose Windows tout logiciel, savoirtout un tas d'lments prdfinis permettant l'interaction avec l'utilisateur : Les fiches (i.e. les fentres : rappelezvous que 'Windows', en anglais, cela signifie 'Fentres') sont les premiers de ces lments, mais il y en a une fouled'autres, parmi lesquels les boutons, les cases cocher, les zones d'dition, les menus, les barres d'outils, les listes,

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    18/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 18 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    les arbres (pensez la partie gauche de l'Explorateur Windows) et encore des tas d'autres (Chacun de ces lmentsse retrouve dans bon nombre de logiciels, et pour cau se : Windows les fournit en standard aux programmeurs).Chacun de ces lments, l'exception des fiches qui ont un statut particulier, est reprsent par le terme composant,et est ce titre accessible dans la palette des composants de Delphi. Ces composants seront, comme s'il s'agissaitde dessiner, placs, dimensionns, rgls un par un sur les fiches et permettront de constituer une interface utilisateur(le terme "dessin" est bien celui qui convient sous Delphi : Vous pourrez vraiment placer n'importe quel composant

    sur une fiche, tel un bouton, le dplacer, le dimensionner loisir. C'est, vous pourrez le constater par vous-mme,trs agrable au dbut, on a un peu l'impression de jouer au magicien)

    IV-D-3 - Proprits et vnements

    Ces notions sont assez dlicates et nous allons juste expliquer ici le strict minimum qu'il vous faut savoir pourcomprendre le fonctionnement de l'inspecteur d'objets (fentre Inspecteur d'objets de Delphi) dans la partiesuivante.En examinant l'inspecteur d'objets, vous avez certainement dcouvert deux onglets mystrieux : Proprits et Evnements . Ces deux termes s'appliquent tout composant accessible dans la barre de composants de Delphi,ainsi qu'aux fiches. Chaque fiche, chaque composant possde une liste de proprits et une liste d'vnements.Les proprits sont des paramtres rglables pour un composant. Par exemple : les dimensions, les couleurs, lespolices, le titre d'une fentre, le texte d'un bouton...Les vnements sont tout autre : Lorsque vous utilisez un logiciel, vous provoquez sans cesse des vnements,sans mme le savoir. Ainsi, clics et mouvements de souris, touches frappes au clavier font partie des vnementsles plus simples. D'autres sont provoqus lorsqu'une fentre devient visible, invisible, lorsqu'une case cocher estcoche, lorsque dans une liste un lment est slectionn...La presque totalit des composants dclenchent des vnements pendant l'excution du logiciel. Ces vnementsseront pour vous autant d'informations sur les agissements de l'utilisateur, et vous pourrez rpondre tel ou telvnement ou l'ignorer totalement (ce qui est le cas par dfaut).

    IV-E - Premier aperu de l'interface de Delphi

    L'objet de cette partie est autant de vous familiariser avec l'interface de Delphi que de donner des informationsfondamentales mais compltes sur la gestion des projets sur Delphi. Le mieux est d'avoir Delphi ouvert en mmetemps que ce document et d'effectuer au fur et mesure les manipulations afin de briser la glace entre vous et Delphi.L'utilisateur de Windows que vous tes srement aura peut-tre remarqu que Delphi n'est pas une fentre uniquequi mobiliserait tout l'cran, avec des sous-fentres l'intrieur, mais est constitu d'un bandeau regroupantmenus, barres d'outils et palette de composants. Les autres fentres du logiciel peuvent tre positionnes n'importeo sur l'cran. En voici quelques-unes parmi les plus importantes :

    L'inspecteur d'objets, dans une fentre flottante, est un outil indispensable et vous apprendrez apprcier sapuissance cache.

    L'diteur de code, qu'il contienne seulement du texte ou qu'il soit agrment d'autres petites parties (qui neseront dcrites en dtail que lorsque vous aurez les connaissances ncessaires pour les utiliser), est l'endroit

    ou vous crirez votre Pascal.

    Mais place aux dtails.

    IV-E-1 - La barre de menus

    Dans toute application Windows suffisamment imposante, une barre de menus permet d'accder la plupart descommandes disponibles. Delphi ne fait pas exception cette rgle sage, avec une barre de menus assez bien conue( partir de la version 4 en tout cas, mais ceci est une question de got).Le menu Fichier permet la gestion des fichiers constituant le projet en cours, le menu Edition permet les fonctionsclassiques d'dition du texte, le menu Recherche permet d'effectuer des recherches dans de longs programmes,le menu Voir permet d'avoir accs aux diffrentes fentres de Delphi, d'afficher des lments constituant uneapplication, le menu Projet permet d'accder aux commandes spcifiques au projet (l'application en gestation) encours, le menu Excuter permet la compilation et le lancement de l'application ainsi cre, le menu Outils donne

    http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://fbeaulieu.developpez.com/guide/http://www.developpez.com/
  • 8/14/2019 Guide Pascal Et Delphi

    19/329

    Guide Pascal et Delphi par Frdric Beaulieu

    - 19 -Copyright 2008 - Frdric Beaulieu. Aucune reproduction, mme partielle, ne peut tre faite de ce si te et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://fbeaulieu.developpez.com/guide/

    accs divers outils de Delphi, donc un seul est vraiment intressant : l'diteur d'images. Le menu Aide, enfin,permet d'accder l'aide du logiciel, plus ou moins b ien faite suivant les version s (l'aide de la version 2 est assezmal fichue, celles des autres versions est nettement mieux faite), et l'accs l'aide sur les API Microsoft (tout celasera expliqu plus tard).Il ne s'agit pas ici de connatre chacun des lments de menus de Delphi, c'est inutile ce stade car certainescommandes ne servent qu'en de rares occasions. Il est cependant essentiel de vous familiariser avec les commandes

    les plus utiles pour la gestion des projets : Nouveau#, Ouvrir, Enregistrer, Enregistrer sous#, Fermer. Il estmalheureusement difficile ici de dcrire ces lments qui changent lgrement avec les versions de Delphi. Voicila description de quelques lments pour Delphi 6 (ces lments se retrouvent tous sous un nom trs voisin dansles versions moins rcentes) :

    IV-E-1-a - Menu Fichier

    Nouveau# Permet de crer un nouvel lment. Cetlment peut tre beaucoup de choses,parmi lesquelles un projet, une unit(un .PAS sans .DFM correspondant), unefiche (un .PAS et un .DFM associs) etbeaucoup d'autres choses qui dpassent lecadre de ce guide (certains choix, comme'Composant', 'Cadre', 'DLL' seront abordesplus loin).

    Ouvrir Permet d'ouvrir un fichier : on ouvre un projeten ouvrant son fichier .DPR unique. Onouvre une fiche en ouvrant le fichier .DFMou le fichier .PAS correspondant. On ouvreune unit (sans fiche) en ouvrant le .PAS quila contient. Enfin, tout fichier texte peut treouvert dans Delphi, selon des besoins diverset varis.

    Enregistrer Permet d'enregistrer l'lment en coursd'dition. Cet lment est soit une unit(cf. description de l'diteur de code), soitune fiche. Si l'lment n'a encore pas tenregistr, un nom vous sera demand.Il peut tre temps de crer un rpertoirepour le projet, et de rflchir au nom dufutur fichier .EXE du logiciel si on enregistrele .DPR (car il est rappel que ces deuxfichiers ont le mme nom de base).

    Enregistrer sous... Comme enregistrer, mais permet en plus dedfinir un nouveau nom.

    Tout Enregistrer Permet d'enregistrer d'un coup tous lesfichiers d'un projet ouvert. Des noms defichi