Zitat von
EarlyBird:
Ich muss Datensätze in einer vertikalen Ansicht darstellen.
Ich nutze aus diversen Gründen kein Stringgrid unter anderem ist das scrollen durch die Datensätze zu langsam.
Ein schnelles scrollen durch die Datensätze ist äußerst wichtig.
Ich zeichne die Daten selbst in ein TBitmap und bin dabei so flexibel wie ich es benötige.
Das scrollen funktioniert dann auch wesendlich schneller.
Nun muss ich aber Änderungen in meinem "VerticalGridBild" machen können und das möglichst schnell.
Dazu speichere pro Datensatz ein Bitmap mit Koordinaten in einem Objekt.
ändern sich nun die Daten in der Tabelle kann ich dieses Bitmap einfach auf das "VerticalBild" kopieren.
Es geht also darum, die Daten, die du schon mal gezeichnet hat, in einen Cache zu packen, damit es beim 2. Mal schneller geht.
Das geht aber stark auf Kosten des Hauptspeichers!! 10000 Bitmaps brauchen halt doch einige MBs.
Besser wäre wohl EMF (Enhanced Meta File) zu benützen.
Ein (Windows) Meta File ist sozusagen ein Playback aller Zeichenbefehle, die auf einen Canvas angewendet wurden.
Es muss dabei nicht unbedingt in einer Datei gespeichert werden.
Ich würde mich an deiner Stelle auf bessere
Filtermöglichkeiten konzentrieren anstatt das DBGrid neu zu erfinden!
Es ist doch viel sinnvoller die Datenmenge vor der Anzeige stark einzuschränken, als Tausende Datensätze anzuzeigen und das Scrollverhalten zu optimieren. Letztendlich müssen die Tausende Datensätze ja doch mindestens ein Mal eingelesen werden. Ändern sich die Daten im Hintergrund, wird der Cache wertlos und muss erneut aufgebaut werden.