sarssor
Messages postés63Date d'inscriptiondimanche 22 juillet 2007StatutMembreDernière intervention28 avril 2011
-
20 mars 2011 à 15:36
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
21 mars 2011 à 10:44
Salut mes Amis
Je voudrais dessiner un rectangle sur Bitmap, mais les problèmes sont les suivants:
1. le rectangle ne sera pas affichée sur le bitmap!
2. l'image bitmap pichenette par drwing!
Voici tout le code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
Image1: TImage;
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormPaint(Sender: TObject);
private
procedure ClearScreen;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
IsDown:Boolean=False;
StartX,StartY,EndX,EndY:Integer;
implementation
{$R *.dfm}
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ClearScreen;
EndX:=X;
EndY:=Y;
Canvas.Rectangle(StartX,StartY,EndX,EndY);
IsDown:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.DoubleBuffered:=True; // to reduce flickering...
//Canvas.Brush.Color:=clBtnFace;
Image1.Picture.Bitmap.LoadFromFile('picture.bmp');
image1.Canvas.Brush.Style:=bsClear; // neu
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
StartX:=X;
StartY:=Y;
IsDown:=True;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if IsDown then
begin
ClearScreen;
EndX:=X;
EndY:=Y;
image1.Canvas.Rectangle(StartX,StartY,EndX,EndY);
end;
end;
procedure TForm1.ClearScreen;
begin
Canvas.FillRect(ClientRect);
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Image1.Picture.Bitmap.LoadFromFile('picture.bmp');
end;
end.