TDataLink的问题

susdj 2006-06-12 05:12:33
我在控件中加入了TMyDataLink。
当连接的DataSource.DataSet内容发生
变化时要动态更新控件。

我取记录的方式是重载MyDataLink.DataEvent
begin
inherited;
while not MyDataLink.DataSource.DataSet.eof do
begin
...
MyDataLink.DataSource.DataSet.Next
end
...
问题是调用MyDataLink.DataSource.DataSet.Next会触发
DataEvent调用,程序进入死循环!
请教如何读取记录数据而不产生DataEvent。
...全文
102 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
susdj 2006-06-22
  • 打赏
  • 举报
回复
搞定了,用TDataLink.ActiveRecord
wizardqi 2006-06-14
  • 打赏
  • 举报
回复
我修改的那段代码执行也不要紧,如果是在执行DataEvent依靠tag的值避免递归调用。
wizardqi 2006-06-13
  • 打赏
  • 举报
回复
这个简单,置一个标志位即可,比如:
begin
if Tag<>0 then Exit;
Tag:=1;
inherited;
while not MyDataLink.DataSource.DataSet.eof do
begin
...
MyDataLink.DataSource.DataSet.Next
end
...
Tag:=0;
end;
susdj 2006-06-13
  • 打赏
  • 举报
回复
没有人用过TDataLink吗?
baseyueliang 2006-06-13
  • 打赏
  • 举报
回复
为什么非要通过DataLink这中层跟DataSet通讯,又不能复用?一直没搞明白VCL为什么设计DataLink,或许没能理解设计者的意图.
susdj 2006-06-13
  • 打赏
  • 举报
回复
MyDataLink.DataSource.DataSet.Next;一执行就会调用DataEvent

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧