遇到这样问题,用一个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;