Moin zusammen.
Ich stelle in einem TStringGrid (FMX) eine Meldungsliste für Prozesszustände in einer industriellen Anlage dar. Das können schon mal recht viele werden, und wenn man diese Liste wirklich braucht (lies: falls mal richtig etwas schief gelaufen ist), sollte man in dieser auch z.B. alle Meldungen der letzten 2-3 Tage ungefiltert darstellen und durchscollen können. So wahnsinnig viele sind es auch wieder nicht, ca. 1000-2000 pro Tag maximal.
Das Abrufen dieser Daten aus der
DB ist sehr zügig, allerdings braucht das Grid ewig mit der Darstellung. Fast schon eine ganze Minute wenn man es mal testhalbar übertreibt und ca. 10000 Datensätze abruft.
Ich nutze das OnDrawColumnCell Event um die Zeilen anhand eines Wertes in der jeweiligen Zeile zu färben (FillRect), und lasse von DefaultDrawCell() dann den Rest erledigen. Also auch nichts wildes denke ich.
Mir scheint, als würde das Grid versuchen
alle Zeilen zu zeichnen, auch wenn diese gerade überhaupt nicht im sichtbaren Bereich liegen. Das ist aber nur eine Vermutung.
Kann ich irgend etwas tun, doch potenziell tausende Zeilen scrollbar bereitzustellen, das ganze aber in benutzbarer Geschwindigkeit zu halten?
Ich habe früher mit dem TMS Grid für genau denselben Zweck gearbeitet, und damit keine solchen Probleme gehabt.
(Delphi 10.2.3, Anbindung des Grids an eine UNIDAC TMyQuery via LiveBindings)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)