我正在编写一个网格控件,该控件将显示tdataset或tobjectList的内容。当您只需要支持tdataset时,事情就很简单了:

  1. 通过TDatalink后代链接到数据集。
  2. 绘制网格的内容时,您可以使用该tdatalink中缓冲的记录来绘画所需的内容。
  3. 无需在某个地方将单个对象代表TDATASET中的行,因为您总是只绘制缓冲区中的行。

就我而言,我还需要接受来自其他一些来源的数据,这意味着我需要一个代表每一行的对象(也是因为控件需要大量的行状态)。

但这会导致上述模型的问题。因为我有一个代表每一行的对象,所以当从tdataset添加或删除记录时,我需要通知我。我只是看不到该怎么做。

显然,我不想吸引数据集事件。它们可能已经在使用,Tdatalink旨在成为我的控件和数据集之间的中介。而且我使用DataEvent虚拟方法的尝试失败了,因为它根本没有告诉您是否添加/删除了记录。

有任何想法吗?

有帮助吗?

解决方案

如果您将tdatalink后代连接到连接到tdataset的tdatasource,则在数据更改时,您会在记录变化过程中接听电话。

您可以使用连接到TDATASET的TDATASOURCE的onDataChange和onupdatedata。

其他提示

看来,您必须从要使用的基本数据集类中得出自己的类。在这里,您需要覆盖InternalAddrecord,InternalPost,InternalDelete方法和处理记录添加 /删除。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top