Hast du ein konkretes Problem oder fehlt dir ein Ansatz? Ein bisschen Pseudocode:
Code:
Rect: TRect;
MousePos: TPoint;
OnMouseDown
MousePos := Point(X, Y);
OnMouseMove
if ssLeft in ShiftState then
Rectangle(Displace(Rect, Point(X, Y) - MousePos);
OnMouseUp
Rect := Displace(Rect, Point(X, Y) - MousePos);
Displace(TRect, TPoint) // Verschiebt Rechteck
[...]