Sign in Join
Wiki copytemporary

BGRABitmap tutorial 1/fr: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: BGRABitmap tutorial 1/fr

OldNewLine
1+Ce premier tutoriel montre comment utiliser la bibliothèque [[BGRABitmap/fr|BGRABitmap]]. Un tutoriel est aussi disponible sur developpez.net[1](http://lazarus.developpez.com/cours/bgrabitmap/).
2+
3+### Création d'un nouveau projet
4+
5+Créez une application fenêtrée avec le menu **Projet \> Nouveau projet**.
6+
7+L'unité de la fenêtre principale devrait ressembler à cela :
8+
9+``` pascal
10+unit UMain;
11+
12+{$mode objfpc}{$H+}
13+
14+interface
15+
16+uses
17+ Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
18+
19+type
20+
21+ { TForm1 }
22+
23+ TForm1 = class(TForm)
24+ private
25+ { private declarations }
26+ public
27+ { public declarations }
28+ end;
29+
30+var
31+ Form1: TForm1;
32+
33+implementation
34+
35+initialization
36+ {$I UMain.lrs}
37+
38+end.
39+```
40+
41+Si vous ne la trouvez pas, utilisez **Ctrl-F12** pour afficher la liste des fichiers.
42+
43+Sauvegardez votre projet à côté de la librairie **BGRABitamp** avec le menu **Fichier \> Tout enregistrer** (pas forcément dans le même répertoire).
44+
45+### Ajout de la référence à BGRABitmap
46+
47+La première fois que vous utilisez BGRABitmap, ouvrez bgrabitmappack.lpk avec Lazarus et cliquez dans la fenêtre de paquet "Utiliser \> Ajouter au projet". Ensuite, si vous avez besoin d'ajouter la référence à un autre projet, vous pouvez le faire via l'inspecteur de projet en cliquant "Ajouter... \> Nouvelle condition" et en choissant BGRABitmapPack.
48+
49+Dans la clause unité, ajoutez une référence à *BGRABitmap* et à *BGRABitmapTypes* après *Dialogs*.
50+
51+``` pascal
52+uses
53+ Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
54+ BGRABitmap, BGRABitmapTypes;
55+```
56+
57+Ensuite, vous devez mettre le projet au courant des unités de **BGRABitmap**. Il y a deux façons de le faire qui sont décrites ci-après.
58+
59+#### Alternatives pour ajouter la référence
60+
61+##### En installant BGRABitmap comme un paquet
62+
63+Ouvrez *bgrabitmappack.lpk*. Assurez vous que le paquet peut etre installé en allant dans la fenêtre de paquet et dans "Options \> Intégration" et en changeant le type de paquet en "Conception et exécution". Enfin, dans la fenêtre de paquet, cliquez sur installation. Une boîte de dialogue apparait, demandant si le paquet doit être ajouté à Lazarus et si Lazarus doit être recompilé. Choisissez "Oui" deux fois.
64+
65+Si tout se passe bien, Lazarus redémarre et les unités de **BGRABitmap** sont disponibles. Si cela ne marche pas, vous pouvez simplement ajouter **BGRABitmap** au chemin de recherche sans avoir besoin de recompiler Lazarus.
66+
67+#### En ajoutant BGRABitmap au chemin de recherche
68+
69+Une autre façon est d'ajouter les unités de **BGRABitmap** au chemin de recherche du projet (-Fu). Pour cela, allez dans les options du compilateur avec le menu **Projet \> Options du compilateur**. Dans "autres fichiers unité", ajoutez le chemin relatif à **BGRABitmap**. Par exemple, si **BGRABitmap** est dans un dossier à côté du votre projet, le chemin relatif pourrait être : "..\BGRABitmap".
70+
71+Si vous copiez les fichiers de **BGRABitmap** dans le même dossier que le projet, vous n'avez pas besoin d'ajouter un tel chemin de recherche. Cependant, cela n'est pas recommandé parce que si vous avez plusieurs projets utilisant la bibliothèque, cela devient une tâche répétitive de mettre à jour une nouvelle version de la bibliothèque.
72+
73+Si vous êtes perdu avec les chemins relatifs, vous pouvez aussi ajouter ce chemin en ajoutant l'unité **BGRABitmap** à votre projet. Pour faire cela, ouvrez à l'intérieur de votre projet le fichier *bgrabitmap.pas*. Ensuite, utilisez le menu **Projet \> Ajouter le fichier au projet**. Lazarus demandera si vous voulez ajouter le fichier et le nouveau répertoire au projet.
74+
75+### Un premier dessin
76+
77+Ajoutez un événement de dessin. Pour cela, cliquez une fois sur la fenêtre. Ensuite allez dans l'inspecteur d'objet, dans l'onglet Événements, et double-cliquez sur la ligne *OnPaint*. Lazarus ajoutera automatiquement un gestionnaire *FormPaint* à l'unité de la fenêtre principale. Ajoutez par exemple le code suivant à l'intérieur du gestionnaire ainsi créé :
78+
79+``` pascal
80+procedure TForm1.FormPaint(Sender: TObject);
81+var bmp: TBGRABitmap;
82+begin
83+ bmp := TBGRABitmap.Create(ClientWidth, ClientHeight, BGRABlack);
84+ bmp.FillRect(20, 20, 100, 40, BGRA(255,192,0), dmSet); //remplit un rectangle orange
85+ bmp.Draw(Canvas, 0, 0, True); //affiche la BGRABitmap sur la fenêtre
86+ bmp.Free; //libère la mémoire
87+end;
88+```
89+
90+Comme vous pouvez le voir, vous avez besoin de définir une variable *TBGRABitmap* et de la créer. Il y a plusieurs constructeurs différents. Celui utilisé ici crée une image de taille *ClientWidth* x *ClientHeight* et la remplit avec du noir. *ClientWidth* et *ClientHeight* sont des propriétés de la fenêtre qui renvoient la place disponible pour dessiner à l'intérieur de la fenêtre.
91+
92+La procédure *FillRect* prend les paramètres usuels pour dessiner un rectangle, c'est-à-dire le coin haut-gauche suivi par le coin bas-droite plus 1. Cela veut dire que le pixel à (100,40) est exclu du rectangle.
93+
94+Après cela, il y a le paramètre de couleur avec les composantes rouge/vert/bleu, et le mode de dessin. *dmSet* signifie de simplement remplacer les pixels.
95+
96+N'oubliez pas de libérer l'objet après utilisation pour éviter les fuites de mémoire.
97+
98+### Code résultant
99+
100+Vous devriez obtenir le code suivant :
101+
102+``` pascal
103+unit UMain;
104+
105+{$mode objfpc}{$H+}
106+
107+interface
108+
109+uses
110+ Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
111+ BGRABitmap, BGRABitmapTypes;
112+
113+type
114+
115+ { TForm1 }
116+
117+ TForm1 = class(TForm)
118+ procedure FormPaint(Sender: TObject);
119+ private
120+ { private declarations }
121+ public
122+ { public declarations }
123+ end;
124+
125+var
126+ Form1: TForm1;
127+
128+implementation
129+
130+{ TForm1 }
131+
132+procedure TForm1.FormPaint(Sender: TObject);
133+var bmp: TBGRABitmap;
134+begin
135+ bmp := TBGRABitmap.Create(ClientWidth,ClientHeight,BGRABlack);
136+ bmp.FillRect(20,20,100,40,BGRA(255,192,0),dmSet);
137+ bmp.Draw(Canvas,0,0,True);
138+ bmp.Free;
139+end;
140+
141+initialization
142+ {$I UMain.lrs}
143+
144+end.
145+```
146+
147+### Exécution du programme
148+
149+Vous devriez obtenir une fenêtre remplie de noir avec un rectangle orange à l'intérieur.
150+
151+<figure>
152+<img src="BGRATutorial1.png" title="BGRATutorial1.png" />
153+<figcaption>BGRATutorial1.png</figcaption>
154+</figure>
155+
156+[[BGRABitmap tutorial 2/fr|Tutoriel suivant (chargement d'image)]]
157+
158+---
159+*From the Free Pascal wiki, page "BGRABitmap tutorial 1/fr", as it stood on 2020-02-09 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history