Hallo eddy,
Zitat:
@MrSpock:
Code:
Table1.Filtered := Table1.Filtered;
ändert ja eigentlich gar nichts,
Das ist richtig, aber als Nebeneffekt wird die Tabelle upgedated. Es wäre auch möglich mit Table1.Close; Table1.Open; dasselbe zu erreichen, dann musst du dir aber die alte Position merken und diese wieder einstellen und zusätzlich, damit man davon nicht sieht mit DisableControls bzw. EnableControls verhindern, dass das Grid etwas davon anzeigt. Deshalb habe ich mit der Zuweisung nichts geändert, sondern nur ein Update erzwingen wollen. (Bei mir funktioniert es auch.) Bei dir wird offensichtlich das Scrollevent immer wieder erzeugt, wenn die Tabelle upgedatet wird, auch dort könnte man noch tricksen, aber in diesem Fall ist vielleicht das o.g. Vorgehen vorzuziehen.
Das Netz kann das für dich ja nicht so einfach machen, da du ja nur auf eine Momentaufnahme schaust. Um zu verhindern, dass bei jedem Scrollevent ein Update stattfindet, könntest du auch folgendes machen. Immer wenn ein Datensatz geändert oder hinzugefügt wurde (z.B. im AfterPost) könntest du die aktuelle Zeit in eine Tabelle im Netz eintragen. Im AfterSroll schaust du dann in diese Tabelle. Ist daie Zeit neuer als die letzte Änderung, die du schon mitbekommen hast, ist ein Update nicht notwendig, sonst machst du das Update wie oben beschrieben.