全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:971
推到 Plurk!
推到 Facebook!

控制刷屏闪烁

答題得分者是:小傑克
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-20 16:15:52 IP:218.80.xxx.xxx 訂閱
我用一个TIMER控件实行每秒刷新DBGRID里面的数据,但是如果数据多的话,闪烁的非常厉害,想知道有么有办法,可以尽量减少其闪烁,用DBGRID.REPAINT ?
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-25 16:21:29 IP:59.112.xxx.xxx 訂閱
鎖住視窗更新就可以改善很多,可以試試

try
LockWindowUpdate(handle);

//<--在這邊做query的動作-->

finally
LockWindowUpdate(0);
end;

------
額有朝天骨,眼中有靈光
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-25 16:24:05 IP:125.230.xxx.xxx 訂閱
之前在某站上看到一種作法,概念是只刷新畫面上可視的資料段,
例如資料庫有1000000筆資料,但畫面上的空間一次最多只能顯示
100筆,就限定DBgrid只refalsh這100筆資料,其餘就不做處理
這樣應能解決閃爍的問題。

希望這能解決你的問題。
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-25 16:27:06 IP:59.112.xxx.xxx 訂閱
另外,可以把DBGrid1暫時不連結到DataSource也可以 ,我大部分都是這樣做

DBGrid1.DataSource.DataSet.DisableControls;
ADOQuery1.Close;
ADOQuery1.SQL.Text := sSql;
ADOQuery1.Open;
DBGrid1.DataSource.DataSet.EnableControls;

------
額有朝天骨,眼中有靈光
系統時間:2024-05-15 14:23:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!