1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
procedure FormCreate(Sender: TObject);
Procedure AfficheSurImage(Mode : Integer);
procedure RadioGroup2Click(Sender: TObject);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
Bmp1,Bmp2 : Tbitmap;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
//Création des TBitmap
Bmp1 := TBitmap.Create;
Bmp2 := TBitmap.Create;
//chargement des bitmap dans le dossier du l'application
Bmp1.LoadFromFile('Bmp1.bmp');
Bmp2.LoadFromFile('bmp2.bmp');
// Couleur transparente
Bmp1.TransparentColor := clWhite;
Bmp2.TransparentColor := clWhite;
//Activer la transparence
Bmp1.Transparent := true;
Bmp2.Transparent := true;
//Taille du crayon
Bmp1.Canvas.Pen.Width := 3;
Bmp2.Canvas.Pen.Width := 3;
AfficheSurImage(0);
end;
// Affiche un dessin dans l'image suivant le mode
Procedure TForm1.AfficheSurImage(Mode : Integer);
begin
Case Mode of
// copie suelement le bitmap 1
0 : Begin
//Efface le contenu de Image1
Image1.Canvas.FillRect(Image1.ClientRect);
// copie
Image1.canvas.Draw(0,0,bmp1);
end;
// copie suelement le bitmap 2
1 : Begin
//Efface le contenu de Image1
Image1.Canvas.FillRect(Image1.ClientRect);
// copie
Image1.canvas.Draw(0,0,bmp2);
end;
//Copie bmp 1 et bmp 2
2 : Begin
//Efface le contenu de Image1
Image1.Canvas.FillRect(Image1.ClientRect);
// copie
Image1.canvas.Draw(0,0,bmp1);
Image1.canvas.Draw(0,0,bmp2);
end;
//Copie bmp 2 et bmp 1
3 : Begin
//Efface le contenu de Image1
Image1.Canvas.FillRect(Image1.ClientRect);
// copie
Image1.canvas.Draw(0,0,bmp2);
Image1.canvas.Draw(0,0,bmp1);
end;
end; //case of
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
AfficheSurImage(RadioGroup2.ItemIndex);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
AfficheSurImage(RadioGroup2.ItemIndex);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
// Si le click gauche est enfoncé et que le curseur bouge, ca dessine
If SsLeft in Shift then begin
If RadioGroup1.ItemIndex = 0 then begin
Bmp1.Canvas.Moveto(x,y);
Bmp1.Canvas.Lineto(x+1,y+1);
end else begin
Bmp2.Canvas.Moveto(x,y);
Bmp2.Canvas.Lineto(x+1,y+1);
end;
//Refresh de l'affichage
end;
end;
end. |
Partager