Delphi-Quellcode:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
const
minWidth = 20;
minHeight = 20;
var
newPos: TPoint;
frmPoint : TPoint;
begin
with TImage(Sender) do
begin
GetCursorPos(newPos);
//Screen.Cursor := crSize;
Left := Left - oldPos.X + newPos.X; // <---
Top := Top - oldPos.Y + newPos.Y; // <---
oldPos := newPos;
end;
end;
Wenn, wie du sagst, der Fehler auftritt, sobald du mit der Maus über dem TImage bist, vermute ich dass es die MouseMove Methode ist die Probleme bereitet. Weißt du deiner Variable oldPos denn irgend eine Anfangsposition zu ? Vielleicht greift er sonst auf eine Stelle zu die gerade im Speicher lag - und dein TImage landet im Nirvana