procedure TTest.ElemOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
FStartingPoint := Point(X, Y);
FTrigger.OnMouseMove := @ElemOnMouseMove;
FTrigger.OnMouseUp := @ElemOnMouseUp;
end;
procedure TTest.ElemOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
FTrigger.OnMouseMove := nil;
FTrigger.OnMouseUp := nil;
end;
procedure TTest.ElemOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if FStartingPoint.Distance(Point(X, Y)) >= 5 then
begin
FTrigger.OnMouseMove := nil;
FTrigger.OnMouseUp := nil;
FTrigger.BeginDrag(True);
end;
end;