Delphi et la génération de XML

Guillaume Desgeorge

Je les mets dans le même panier, car étant développés par la même entreprise (Borland, devenue Inprise au grand désespoir de tous les habitués !), ils ont les mêmes menus, la même logique, et Borland a la volonté de faire en sorte qu'on puisse facilement passer de l'un à l'autre, voire de pouvoir mélanger indifféremment du code de l'un ou de l'autre dans le même programme…

La différence majeure entre les deux est que le Delphi s'appuie sur du code en Pascal et le C++, Builder sur du code en langage C/C++. Pour l'introduction cela ne change rien… Donc, vous ouvrez soit C++ Builder, soit Delphi. Personnellement, je suis sous C++ Builder (en anglais) et Delphi (en français). Ça ne change rien pour la logique à suivre, mais s'il y a des différences dans les menus ou autres, ne vous inquiétez pas : il y a sûrement l'équivalent dans votre version…

Bref, votre écran est composé de quatre fenêtres…

- Titre : Delphi et la génération de XML

- Auteur : Guillaume Desgeorge

- Parution : 1 avril 2005

- Mise à jour : 25 décembre 2019

- Licence : Copyright ® 2005 Guillaume Desgeorge. Aucune reproduction, même partielle, ne peut être faite de ce site 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction aux Environnements de Borland : Delphi et C++ Builder

- I-A. La partie « Menus et Composants »

- I-B. La partie « Code »

- I-C. La partie « Graphique »

- I-D. La partie « Caractéristiques de l'objet »

- II. Borland Delphi, première application

- II-A. Première application…

- II-B. Mise en place des composants

- II-C. Boîte de dialogue

- II-D. La zone de texte « Memo1 »

- II-E. La fonction FormCreate

- II-F. La boîte d'édition « Edit1 »

I - Introduction aux Environnements de Borland : Delphi et C++ Builder

I-A - La partie « Menus et Composants »

Cette partie est elle-même divisée en trois parties. La barre des menus (« File Edit Search… »), les icônes (en bas à gauche) pour faciliter l'accès aux fonctions les plus utilisées de la barre des menus et les composants (en bas à droite, « Standard Win95… ») dont je parlerai dans deux petites secondes…

- Les menus : il n'y a pas pas grand-chose à en dire. Je ne vais pas tous les passer en revue, les noms sont en général bien explicites et il y a l'aide, même si vraiment il y a peu de choses qui servent dans un premier temps. À part « New Application », « Run » (la flèche jaune en icône) et « Program Reset » pour arrêter l'exécution d'un programme qui ne marche pas, c'est à peu près tout…

- Les icônes : sans commentaires…

- Les composants : là, il y a quelque chose à dire !

Les composants sont des bouts de programme qui ont déjà été faits pour vous. Exemple… Si vous voulez mettre un bouton dans une fenêtre, vous avez juste à prendre un bouton, et le poser sur votre fenêtre sans avoir besoin d'expliquer à l'ordinateur ce qu'est un bouton, comment on clique dessus, ce qu'il se passe graphiquement quand on clique dessus, bref, c'est déjà fait.

Les plus couramment utilisés sont ceux de la palette de composants « Standard » : dans l'ordre, on peut y voir un menu déroulant, une liste, un label (de l'écriture, quoi…), une ligne d'édition (« edit box »), une zone de texte (« memo »), un bouton, une case à cocher, etc. Tous les composants de base d'une fenêtre classique.

Il existe des tonnes de composants, et ils sont souvent compatibles entre Delphi et C++ Builder. Vous en trouverez beaucoup de gratuits sur Internet, et après, vous les ferez vous-même! Une adresse utile pour trouver de nouveaux composants : https://delphi.developpez.com/freewares/.

I-B - La partie « Code »

Il écrit directement le minimum requis pour votre application et crée seul les fichiers « .h » associés. Par contre, le revers de la médaille, il n'est pas conseillé de modifier ce qu'il écrit. Si vous voulez supprimer un bouton par exemple, ne l'effacez pas directement dans le code, mais effacez-le graphiquement : le compilateur s'occupera du reste.
Nous verrons plus tard comment ajouter son programme…

I-C - La partie « Graphique »

C'est la fenêtre que va voir l'utilisateur lorsqu'il lance le programme. Pour l'instant, elle est vide, mais c'est là qu'on peut ajouter les menus, les boutons et tout le reste… Vous pouvez bien entendu l'agrandir, la réduire, bref, faire tout ce que vous voulez sans taper une ligne de code… Pour les outils Borland, c'est vrai !

I-D - La partie « Caractéristiques de l'objet »

C'est dans cette partie qu'on donne les caractéristiques des composants que l'on place sur sa fenêtre.
Ici, on peut voir qu'il s'agit des caractéristiques générales de la fenêtre, car on voit « Form1: TForm1 ». « Form1 » signifie qu'on regarde les caractéristiques d'un composant de la fenêtre « Form1 » (il peut en effet y avoir Form2, Form3, ou même canard ou poisson, puisque vous donnez le nom que vous voulez à chaque fenêtre…) et « TForm1 » désigne la fenêtre en général.
Même s'il est possible de changer le nom des composants ou des fenêtres, je vous conseille de laisser les noms par défaut si vous n'avez pas l'intention de faire un programme énorme avec 15 fenêtres différentes.
Remarque : quand je parle de nom de la fenêtre, ne confondez pas avec ce qu'il y aura d'écrit comme titre de fenêtre. Je parle du nom de la fenêtre pour le programme (« name » dans les « properties ») et non pas du titre qui s'affiche à l'écran (« caption » dans les « properties »). Ainsi, si vous placez un bouton sur votre fenêtre, vous changerez ce qu'il y a d'écrit sur le bouton en changeant le « Button1 » de « caption » par « quitter » ou « enregistrer » ou ce que vous voulez, mais le bouton s'appellera toujours « Button1 » pour le programme, seul l'affichage changera lors de l'exécution… Essayez de changer « caption » (la partie sélectionnée sur l'image) : le nom de la fenêtre change…

Voilà pour l'introduction, maintenant, on y va… Introduction Borland Delphi.

II - Borland Delphi, première application

J'espère que vous avez lu l'Introduction aux environnements Borland… Oui ? Alors on y va !

II-A - Première application…

Ça ne va pas être une application très utile, mais elle devrait avoir l'avantage de vous montrer comment faire un programme, comment utiliser un bouton, une boîte d'édition et une zone de texte.
Voici ce que nous allons faire… Sur notre fenêtre, il y aura :

- un bouton « Boîte de dialogue ». Quand on clique dessus, une boîte de dialogue s'ouvre avec juste un message quelconque et un bouton « OK » ;

- une zone de texte qui écrira quelque chose à chaque fois qu'on aura cliqué sur le bouton « Boîte de dialogue », par exemple le nombre de fois qu'on a cliqué dessus ;

- une boîte d'édition où s'inscrira le nombre de fois qu'on a cliqué sur « Boîte de dialogue », mais que lorsqu'on cliquera sur un autre bouton « Combien de fois ? ».

Connaissez-vous une application plus inutile ?

II-B - Mise en place des composants

Vous avez donc devant vous la fenêtre « Form1 » qui est totalement vierge. Si ce n'est pas le cas, fermez tout (« Close all » dans le menu « File ») et faites « New Application », nouvelle application.

On va commencer par enregistrer notre projet… « Enregistrer le projet sous… ». Il vous demande un premier nom (« Unit1.pas »), ce sera le nom du fichier contenant le code du programme. Il vous demande ensuite le nom du projet, appelez-le « premier.dpr » par exemple. Les noms ne peuvent contenir d'espaces, le caractère « _ » est autorisé.

Maintenant, dans la palette de composants « Standard », cliquez sur le bouton, et cliquez sur votre « Form1 ». Mettez un autre bouton, une boîte d'édition, une zone de texte, réglez la taille de la fenêtre, placez-les où vous voulez pour que ce soit joli, vous obtenez ça…

Ensuite, on va donner les noms qui apparaîtront à l'écran…
Cliquez sur « Form1 » (une seule fois) et regardez dans l'inspecteur d'objets : changez le champ « caption » en « Première application ».
Renommez également « Button1 » et « Button2 » en les sélectionnant et en changeant « caption ».
Effacez le texte « Edit1 » en effaçant le champ « texte ».
Effacez le texte « Memo1 » en faisant en cliquant deux fois sur « Lines » et en effaçant à la main.
Attention, il ne faut pas changer le nom des composants, mais simplement ce qui s'affiche à l'écran…

Finalement, vous obtenez ça :

Vous pouvez compiler si vous voulez (« Run », « Exécuter » ou flèche bleue) pour voir ce que ça donne…

II-C - Boîte de dialogue

On va associer une boîte de dialogue au bouton « Boîte de dialogue », OK ?
Bon, double-cliquez sur le bouton… Il crée automatiquement une fonction qui se déclenchera lorsqu'on cliquera sur le bouton. Il ne reste plus qu'à écrire le code associé au bouton dans la fonction. On rajoute donc :

ShowMessage('Vous m''avez cliqué?')

Vous avez donc ça à l'écran :

Compilez le programme et regardez le résultat !

N.B. Pas de point-virgule avant un end, mais en Delphi, vous pouvez le mettre si vous voulez.
N.B. 2 Pour écrire une apostrophe, il faut en écrire deux !

II-D - La zone de texte « Memo1 »

On va maintenant ajouter du texte dans la zone de texte à chaque fois qu'on cliquera sur le bouton « Boîte de dialogue ». Pour cela, ajoutez la ligne suivante juste après celle qu'on vient de mettre (c'est quelque chose qu'on fait lorsqu'on clique sur notre bouton « Boîte de dialogue » :

Memo1.Lines.Add ('Vous avez cliqué!')

Et essayez-le… ô, miracle! Vous savez maintenant utiliser la fonction Memo1.Lines.Add, ajouter une ligne à Memo1.

Il faut maintenant que l'on ajoute un compteur pour savoir combien de fois on a cliqué sur le bouton.

N.B. N'oubliez pas de mettre un point-virgule après la ligne précédente !

II-E - La fonction FormCreate

Le problème, c'est que si on met une variable dans la fonction associée au bouton « Boîte de dialogue », elle reprendra sa valeur initiale à chaque fois qu'on va cliquer dessus et n'existera plus dans le reste du programme. On va donc mettre une variable globale dans le programme qui s’appellera « clics_b1 ».
Allez au début du programme, et ajoutez clics_b1: integer; dans var… On vient d'ajouter notre variable globale.

Cette variable devra prendre la valeur 0 lorsqu'on lance le programme. La fonction FormCreate sert à ça : elle regroupe toutes les actions à faire pour initialiser notre programme, au moment où on affiche notre fenêtre principale…

Pour créer cette fonction, double-cliquez sur un endroit de Form1 où il n'y a pas de composant.
Ajoutez la ligne clics_b1 := 0.
Il ne reste plus qu'à ajouter dans la fonction associée au bouton 1 la ligne clics_b1:=clics_b1+1; qui incrémente clics_b1 de 1.

Vous devriez avoir ceci :

II-F - La boîte d'édition « Edit1 »

Il ne reste plus qu'à ajouter dans la boîte d'édition « Edit1 » la variable clics_b1…

Créez la fonction associée au bouton « Combien de fois » en double-cliquant dessus et ajoutez la ligne

Edit1.Text := IntToStr(clics_b1)

Ce qui vous donne :

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := IntToStr(clics_b1)
end;

IntToStr (Integer To String) permet de convertir un entier (clics_b1) en chaîne de caractères.
Maintenant, vous pouvez compiler en faisant « Run », ça marche… Vous pouvez même exécuter « premier.exe » en dehors de l'environnement Delphi : c'est votre programme…

Envoyez-moi des suggestions pour le programme d'exemple suivant par e-mail !