Der Titel sagt schon fast alles. Und zwar habe ich eine Funktion implementiert, dass ich ein Bild (TImage) auf meinem Formular hin und herschieben kann. Das klappt auch super, aber nur solange der Mauszeiger nicht über dem Bild ist. Dann fängt das Bild bisschen an zu flackern, heißt es springt immer einen Pixel weg und dann wieder zurück, anstatt dass es sich um einen Pixel verschiebt.
Mein Code sieht bis jetzt so aus:
Delphi-Quellcode:
var XAlt, YAlt: Integer;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
XAlt := X;
YAlt := Y;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssMiddle in Shift then begin
Image1.Left := Image1.Left + (X - XAlt);
Image1.Top := Image1.Top + (Y - YAlt);
end;
XAlt := X;
YAlt := Y;
end;
FormMouseDown und FormMouseMove ist natürlich auch in die Ereignisbehandlung onMouseMove und onMouseDown des Images rein geschrieben. Form1.DoubleBuffered ist außerdem auf true.