代码如下:
procedure TForm1.ImgDrawingPadMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Modified:=True;
if (DRawType=dtClipRect) and EraseClipRect then
DrawToImage(MOuseOrg,NextPoint,pmNotXor)//??
else if (DrawType=dtClipRect) then
EraseClipREct:=true;
if pasted then
CopyPasteBOxToImage;
Drawing:=true;
MouseOrg:=Point(x,y);
NextPoint:=MOuseOrg;
LastDot:=NextPoint;
ImgDrawingPad.Canvas.MoveTo(X,Y);
end;
procedure TForm1.ImgDrawingPadMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if Drawing then
begin
if DrawType=dtCrooked then
begin
ImgDrawingpad.Canvas.MoveTo(LastDot.X,LastDot.Y);
ImgDrawingpad.Canvas.LineTo(X,Y);
LastDot:=Point(X,Y);
end
else begin
DrawToImage(MOuseOrg,NextPoint,pmNotXor);
NextPOint:=POint(x,y);
DrawToImage(MouseOrg,NextPoint,pmNotXor);
end;
end;
stbMain.Panels[1].Text:=Format('X: %d,Y: %d',[x,y]);
end;
procedure TForm1.DrawToImage(TL,BR:TPoint;PenMode:TPenMode);
var im:TImage;begin
with ImgDrawingPad.Canvas do //ImgDrawingPad:TIMage
begin
Pen.Mode:=PenMode;
procedure TForm1.ImgMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssleft in Shift then begin
modified:=true;
X1:=X;Y1:=Y;
ImgMoving:=true;
end;
end;
procedure TForm1.ImgMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ImgMoving:=false;
end;
procedure TForm1.ImgMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ImgMoving=true then begin
(Sender as TIMage).Left:=(Sender as TIMage).Left+X-x1;
(sender as TImage).Top:=(Sender as TImage).Top+Y-Y1;
end;
end;