Mein Vorschlag (bin mir nicht sicher ob es funktioniert):
Im DragOver der Objektes fragst du ab:
Delphi-Quellcode:
if Source = self then begin
if State = dsDragEnter then begin
altx := x;
alty := y;
end else if state = dsDragMove then begin
self.Left := self.Left + x - altX;
self.Top := self.Top + y - alty;
end;
end;
Altx und Alty müssen Membervariablen des Objektes sein.
Sollte so funktionieren, wenn ich mich nicht irre. Schönen Tag noch