[英]When uniQuery is opened, why DataSource.onDataChange trigger 2 times?
我對unidac的uniQuery
有疑問:
當uniQuery
打開時,如果鏈接了DataSource
組件,則DataSource.onDataChange
將觸發2次,而ADOQuery
僅觸發1次,為什么?
環境:
我多次遇到相同的問題,我發現這是默認的加載行為,不僅是在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;
它將消除所有不必要的觸發器,
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.