Ich habe ein eigenes Gitter und eine eigene Listbox, die an diverse Datenmengen gebunden werden können:
- an eine dumme TObjectList
- an eine dumme TIBQuery oder TAdQuery (optional an andere DataSets)
- an eine TssList, die dynamisch von meinem Framework bereitgestellt und gefüllt wird (z.B. TAbfallMain.GrundstueckList)
Die TssList kann ihre Daten wiederum
- in generischen Listen oder
- über einen ORM (aktuell IBX-FireBird, FireDAC-FireBird) verwalten.
TDataLink und ähnliche Controls benutze ich nicht.
Die Anzahl der Datensätze will ich immer wissen da das Grid schon scrollen soll, wenn man in die Nähe des Gitter-Randes kommt. So soll man beim scrollen nach oben und unten schon immer einige der nächsten Datensätze sehen. Standardmäßig ist ein Scroll-Rand von 20% der Gitterhöhe eingestellt. Dazu muss das Gitter aber wissen, wie viele Datensätze noch zur Verfügung stehen.
Die TssList kapselt sämtliche Verhaltensweisen intern auf die unterschiedlichen Datenspeicherarten weg. Insofern soll die TssList immer Auskunft geben können, wie viele Datensätze bzw. Objekte sie gerade representiert.
Bei der Speicherung der Daten in generischen Listen ist die Abfrage ja jederzeit ohne zeitliche Verzögerung möglich.
Bei Einsatz eines ORM frage ich die Anzahl über "Select Count(*)" ab und merke mir das Resultat bis Änderungen der Datenmenge vorgenommen werden.
Das funktioniert jetzt sehr gut und m.E. auch schnell genug.
->
http://www.delphipraxis.net/1216265-post20.html