[英]How do I determine when a record is inserted in a TDataSet?
我正在编写一个网格控件,它将显示TDataSet或TObjectList的内容。 当您只需要支持TDataSet时,事情就很简单了:
就我而言,我还需要接受来自其他一些来源的数据,这意味着我需要有一个代表每一行的对象(也是因为控件需要相当多的行状态)。
但这会导致上述模型出现问题。 因为我有一个代表每一行的对象,所以在向TDataSet添加或删除记录时需要通知我。 我只是看不到该怎么做。
显然,我不想迷上数据集事件。 它们可能已经在使用中,并且TDataLink应该是我的控件和数据集之间的中介。 我使用DataEvent虚拟方法的尝试失败了,因为它根本不会告诉您是否要添加/删除记录。
有任何想法吗?
如果将TDataLink后代挂接到连接到TDataSet的TDataSource,则当数据更改时,您会在RecordChanged过程中得到调用。
您可以使用连接到TDataSet的TDataSource的事件OnDataChange和OnUpdateData。
看来,您必须从要使用的基本数据集类派生自己的类。 在那里,您将需要重写InternalAddRecord,InternalPost,InternalDelete方法并处理记录的添加/删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.