Recht unelegant, aber funktioniert und ist vielleicht ein Ansatzpunkt:
Delphi-Quellcode:
Procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Var
i, iMax: integer;
r: Real;
Begin
iMax := Max(abs(Image1.Left - X), abs(Image1.Top - Y));
For i := 0 To iMax Do Begin
r := i / iMax;
Image1.Left := Image1.Left + Round((X - Image1.Left) * r);
Image1.Top := Image1.Top + Round((Y - Image1.Top) * r);
Sleep(25);
Application.ProcessMessages;
End;
End;
Edit:
Die Max-Funktion benötigt die Math-
Unit!