我有个关于unidac的uniQuery的问题
当uniQuery打开时,如果一个DataSource组件被链接,那么DataSource.onDataChange将触发2次,而ADOQuery只触发1次,为什么?
环境:
发布于 2017-08-30 14:01:48
我多次遇到同样的问题,我发现这不仅仅是在Uni组件中的默认加载行为,所有类似的数据库组件在加载时都会触发两次或更多次.onDataChange,唯一的方法就是使用变通方法忽略第一个触发器。
您还可以找到类似的问题,这里
如果触发两次会让你烦恼,那就试试我的解决办法吧:
var c: integer; // must be global and reset to 0 when u close your query
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if c = 2 then
begin
// do your actions
end
else
begin
inc(c);
end;
end;它将消除所有不必要的触发,
希望这能帮上忙。
https://stackoverflow.com/questions/45952230
复制相似问题