Frage

Ich schreibe ein Gitter, das den Inhalt von entweder einem TDataSet oder einem TObjectList angezeigt wird. Wenn Sie nur auf Unterstützung TDataSet brauchen, sind die Dinge ganz einfach:

  1. Link zu der Datensatz über einen TDataLink Nachkommen.
  2. Wenn Sie den Inhalt des Gitters zu malen, können Sie die Datensätze in diesem TDataLink gepuffert verwenden zu malen, was Sie benötigen.
  3. Es besteht keine Notwendigkeit, irgendwo einzelne Objekte zu haben, Zeilen in der TDataSet zu vertreten, weil man immer nur die Zeilen im Puffer malen.

In meinem Fall muss ich auch Daten von einigen anderen Quellen akzeptieren, was bedeutete, dass ich brauchte, um ein Objekt zu haben jede Zeile darstellt (auch, weil die Steuerung benötigt ziemlich viel Reihe Zustand).

Aber diese Ursachen Probleme mit dem oben beschriebenen Modell. Da ich ein Objekt habe jede Zeile repräsentieren, ich brauche informiert werden, wenn Datensätze hinzugefügt werden oder aus dem TDataSet gelöscht. Und ich kann einfach nicht sehen, wie das zu tun.

Klar, ich will nicht auf die Datenmenge Ereignisse Einhaken sein; sie können bereits im Einsatz sein und die TDataLink sollte der Vermittler zwischen meiner Kontrolle und Daten-Set sein. Und meine Versuche, die Dataevent virtuelle Methode ist fehlgeschlagen, weil es einfach nicht, dass Ihnen nicht sagen, ob ein Datensatz hinzugefügt / gelöscht wird.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Wenn Sie Ihren TDataLink Nachkommen zu einem TDataSource Haken, die mit dem TDataSet verbunden ist einen Anruf in dem Verfahren RecordChanged erhalten, wenn Datenänderungen.

Sie können die Ereignisse verwenden OnDataChange und OnUpdateData eines TDataSource zum TDataSet verbunden.

Andere Tipps

Es scheint, müssen Sie Ihre eigene Klasse von der Basis Dataset-Klasse abgeleitet Sie verwenden werden. Dort werden Sie InternalAddRecord, InternalPost, InternalDelete Methoden und Griff Aufzeichnungen Hinzufügen / Löschen außer Kraft setzen müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top