Wenn Du alle Aktionen beim Datensatzwechsel auskommentierst, tritt der Fehler nicht auf?
Ich mache Folgendes:
1. Ein Timer auf die Form. Enabled := False, Interval: 50ms
2. Das OnTimer-Ereignis führt Folgendes aus:
Delphi-Quellcode:
Procedure TForm1.MyTimerTimer (Sender : TObject);
Begin
If MyTimer.Tag = 1 Then Exit;
MyTimer.Enabled := False;
Try
<Hier alle Aktionen beim Datensatzwechsel
Finally
MyTimer.Tag := 0;
End
End;
3. Beim Datensatzwechsel wird nur der MyTimer angeschaltet.
Das hat den Vorteil, das man schneller scrollen kann. Erst wenn man loslässt, werden für den einen Datensatz (den gerade aktuellen), die Aktionen ausgeführt.