给你一段代码吧,你自己看看
var
isDraw :Boolean;
pts :array[0..1]of TPoint;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
isDraw:=true;
pts[0]:= Point(X, Y);
pts[1]:= Point(X, Y);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if IsDraw then
with Image1.Canvas do
begin
Pen.Width:= 1;
Pen.Color:= clGreen;
Pen.Style:= psDot;
Pen.Mode := pmNotXor;
Brush.Style:= bsClear;
Rectangle(pts[0].X, pts[0].Y, pts[1].X, pts[1].Y);
Rectangle(pts[0].X, pts[0].Y, X, Y);
pts[1] := Point(X, Y);
Pen.Mode := pmCopy;
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
ARect :TRect;
begin
if IsDraw then
begin
ARect:=Rect(pts[0].X, pts[0].Y, X, Y);
with image1.Canvas do
begin
Pen.Mode := pmNotXor;
Rectangle(ARect);
Pen.Mode := pmCopy;
end;
Image2.BoundsRect:=Image1.BoundsRect;
image2.Canvas.CopyRect(Image2.BoundsRect, Image1.Canvas, ARect);
IsDraw:=false;
end;
end;