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。