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