uniDBGrid不显示查询结果的解决方法


遇到这样问题,用一个UniDBTreeGrid显示一个树,点每个节点,按节点做一个查询,然后用UniDBGrid显示。遇到的问题是UniDBGrid不是每次都显示查询内容。第一次显示,第二次不显示...当不显示时,点Grid又显示。

解决办法:

将查询逻辑移到一个uniTimer中,问题解决:

第一步,在SelectionChange中打开Timer

procedure TUserFrame.UniDBTreeGrid1SelectionChange(Sender: TObject);
begin
  //uniDBGrid 不显示查询结果,这里用个定时器解决。
  UniTimer1.Enabled:=True;

end;

第二步,实现查询:

procedure TUserFrame.UniTimer1Timer(Sender: TObject);
var
  sqlstr: string;
begin

  UniTimer1.Enabled:=False;

  //这里做查询sql

  MasterDataSet.Close;
  MasterDataSet.Query.Text := sqlstr;
  MasterDataSet.Open;



end;

后期,遇到这样的问题:象上面的实现,会出现Timer不中止执行,反复执行Timer事件,不断的执行查询,解决的方法是将Timer.RunOnce设置为True。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM