okamor71, тут графика не при чем Нужно присвоить компоненту TImage обработчики MouseDown MouseMove MouseUp
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type TForm1 = class(TForm) Image: TImage; procedure FormCreate(Sender: TObject); private { Private declarations } public procedure ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure ImageMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); end;
var Form1: TForm1;
implementation
{$R *.dfm}
var fl : boolean = false; X0, Y0 : Integer;
procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin fl := true; X0 := X; Y0 := Y; end;
procedure TForm1.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if fl then Begin (Sender as TImage).Left := X - X0 + (Sender as TImage).Left; (Sender as TImage).Top := Y - Y0 + (Sender as TImage).Top; end; end;
procedure TForm1.ImageMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin fl := false; end;
procedure TForm1.FormCreate(Sender: TObject); begin image.Canvas.LineTo(100,100); form1.DoubleBuffered := true; image.OnMouseDown := ImageMouseDown; image.OnMouseMove := ImageMouseMove; image.OnMouseUp := ImageMouseUp; end;
end.
|
Эти обработчики можно присваивать любому TImage они универсальные |