var
isDraw:boolean;
pts:array[0..1]of TPoint;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
pts[0]:= Point(X, Y);
pts[1]:= Point(X, Y);
isDraw:=true;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if isDraw then
with Image1 do
begin
Canvas.Pen.Style:= psDot;
Canvas.Pen.Color:= clGray;
Canvas.Pen.Mode := pmNotXor;
Canvas.Rectangle(pts[0].X, pts[0].Y, pts[1].X, pts[1].Y);
Canvas.Rectangle(pts[0].X, pts[0].Y, X, Y);
pts[1] := Point(X, Y);
Canvas.Pen.Mode := pmCopy;
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if isDraw then
begin
isDraw:=false;
Image2.Width:= pts[1].X-pts[0].X;
Image2.Height:= pts[1].Y-pts[0].Y;
Image2.Canvas.CopyRect(Rect(0,0,Image2.Width,Image2.Height),Image1.Canvas,Rect(pts[0].X, pts[0].Y, pts[1].X, pts[1].Y));
end;
end;