var
SX: Integer = -1;
SY: Integer = -1;
...
procedure Point1Set(X, Y: Integer);
begin
SX := X;
SY := Y;
end;
procedure Move(Sender: TObject; X, Y: Integer);
begin
if SX >= 0 then
begin
TControl(Sender).Left := TControl(Sender).Left - (SX - X);
TControl(Sender).Top := TControl(Sender).Top - (SY - Y);
end;
end;
...
procedure TForm3.MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Point1Set(X, Y);
end;
procedure TForm3.MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Move(Sender, X, Y);
end;
procedure TForm3.MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Point1Set(-1, -1);
end;