Sign in Join
Wiki copytemporary

BGRABitmap tutorial 1/fr: what changed

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

OldNewLine
11Ce 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/).
22
33### Création d'un nouveau projet
44
55Créez une application fenêtrée avec le menu **Projet \> Nouveau projet**.
66
77L'unité de la fenêtre principale devrait ressembler à cela :
88
99``` pascal
1010unit UMain;
1111
1212{$mode objfpc}{$H+}
1313
1414interface
1515
1616uses
1717 Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
1818
1919type
2020
2121 { TForm1 }
2222
2323 TForm1 = class(TForm)
2424 private
2525 { private declarations }
2626 public
2727 { public declarations }
2828 end;
2929
3030var
3131 Form1: TForm1;
3232
3333implementation
3434
3535initialization
3636 {$I UMain.lrs}
3737
3838end.
3939```
4040
4141Si vous ne la trouvez pas, utilisez **Ctrl-F12** pour afficher la liste des fichiers.
4242
4343Sauvegardez votre projet à côté de la librairie **BGRABitamp** avec le menu **Fichier \> Tout enregistrer** (pas forcément dans le même répertoire).
4444
4545### Ajout de la référence à BGRABitmap
4646
4747La 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.
4848
4949Dans la clause unité, ajoutez une référence à *BGRABitmap* et à *BGRABitmapTypes* après *Dialogs*.
5050
5151``` pascal
5252uses
5353 Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
5454 BGRABitmap, BGRABitmapTypes;
5555```
5656
5757Ensuite, 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.
5858
5959#### Alternatives pour ajouter la référence
6060
6161##### En installant BGRABitmap comme un paquet
6262
6363Ouvrez *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.
6464
6565Si 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.
6666
6767#### En ajoutant BGRABitmap au chemin de recherche
6868
6969Une 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".
7070
7171Si 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.
7272
7373Si 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.
7474
7575### Un premier dessin
7676
7777Ajoutez 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éé :
7878
7979``` pascal
8080procedure TForm1.FormPaint(Sender: TObject);
8181var bmp: TBGRABitmap;
8282begin
8383 bmp := TBGRABitmap.Create(ClientWidth, ClientHeight, BGRABlack);
8484 bmp.FillRect(20, 20, 100, 40, BGRA(255,192,0), dmSet); //remplit un rectangle orange
8585 bmp.Draw(Canvas, 0, 0, True); //affiche la BGRABitmap sur la fenêtre
8686 bmp.Free; //libère la mémoire
8787end;
8888```
8989
9090Comme 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.
9191
9292La 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.
9393
9494Aprè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.
9595
9696N'oubliez pas de libérer l'objet après utilisation pour éviter les fuites de mémoire.
9797
9898### Code résultant
9999
100100Vous devriez obtenir le code suivant :
101101
102102``` pascal
103103unit UMain;
104104
105105{$mode objfpc}{$H+}
106106
107107interface
108108
109109uses
110110 Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
111111 BGRABitmap, BGRABitmapTypes;
112112
113113type
114114
115115 { TForm1 }
116116
117117 TForm1 = class(TForm)
118118 procedure FormPaint(Sender: TObject);
119119 private
120120 { private declarations }
121121 public
122122 { public declarations }
123123 end;
124124
125125var
126126 Form1: TForm1;
127127
128128implementation
129129
130130{ TForm1 }
131131
132132procedure TForm1.FormPaint(Sender: TObject);
133133var bmp: TBGRABitmap;
134134begin
135135 bmp := TBGRABitmap.Create(ClientWidth,ClientHeight,BGRABlack);
136136 bmp.FillRect(20,20,100,40,BGRA(255,192,0),dmSet);
137137 bmp.Draw(Canvas,0,0,True);
138138 bmp.Free;
139139end;
140140
141141initialization
142142 {$I UMain.lrs}
143143
144144end.
145145```
146146
147147### Exécution du programme
148148
149149Vous devriez obtenir une fenêtre remplie de noir avec un rectangle orange à l'intérieur.
150150
151-<figure>
152-<img src="BGRATutorial1.png" title="BGRATutorial1.png" />
153-<figcaption>BGRATutorial1.png</figcaption>
154-</figure>
151+![](/wiki-images/e/ea/BGRATutorial1.png)
155152
156153[[BGRABitmap tutorial 2/fr|Tutoriel suivant (chargement d'image)]]
157154
158155---
159156*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