вот так можно
Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, jpeg;
type TForm1 = class(TForm) Image1: TImage; procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; g_LButtonDown : boolean = false; g_DownX, g_DownY : Integer;
implementation
{$R *.dfm}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button=mbLeft then begin g_LButtonDown:=true; g_DownX:=X; g_DownY:=Y; end; end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button=mbLeft then begin g_LButtonDown:=false; end; end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var offset : TPoint; begin if g_LButtonDown then begin Image1.Refresh; {вот это все можно узнавать и устанавливать заранее} offset.X:=Image1.Left; offset.Y:=Image1.Top; Form1.Canvas.Brush.Style:=bsClear; Form1.Canvas.Pen.Style:=psDash; Form1.Canvas.Pen.Color:=clBlue;
Form1.Canvas.Rectangle(g_DownX+offset.X,g_DownY+offset.Y,X+offset.X,Y+offset.Y); end; end;
end.
|
|