Да и вот весь код!
procedure TForm4.DraggableImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Single);
var
MoveVector: TVector;
begin
if FPressed then
begin
// Вычисляем локальное смещение относительно первоначальной позиции
MoveVector := TVector.Create(X - FStartPos.X, Y - FStartPos.Y,0);
// Вычисляем смещение в координатах формы, чтобы учесть изменение
// координат при смещении родительских контролов
MoveVector := DraggableImage.LocalToAbsoluteVector(MoveVector);
if DraggableImage.ParentControl <> nil then
MoveVector := DraggableImage.ParentControl.AbsoluteToLocalVector(MoveVector);
// Перемещаем картинку на вычисленный вектор
DraggableImage.Position.Point := DraggableImage.Position.Point + MoveVector.ToPointF;
end;
end;