如何讓畫面不要閃爍 |
答題得分者是:dllee
|
8325100
一般會員 發表:7 回覆:7 積分:2 註冊:2003-05-26 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: 我用Timer元件設每五粆鐘重新更新類似ListView元件內的資料,結果每五秒執行後,畫面上的ListView元件會閃爍跳動,請問要如何解決此問題讓畫面上的 ListView元件,每五秒不會閃爍跳動您可以試試將 ListView 的 DoubleBuffered 屬性設 true 或 ListView 所在的 Panel 或 Form 的 DoubleBuffered 屬性設 true,還有在更新 ListView Items 時,最好用如下的方式: ListView1.Items.BeginUpdate; try // 增減 ListView1.Items finally ListView1.Items.EndUpdate; end;先執行 BeginUpdate ,等更新完 Items 再執行 EndUpdate ,這樣在更新的過程中,ListView 元件會暫停更新,等 EndUpdate 時,再一次更新,這樣,閃爍的情況會改善很多,同時更新 Items 所占用的時間也會比較少,因為減少不必要的重繪。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
8325100
一般會員 發表:7 回覆:7 積分:2 註冊:2003-05-26 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
以下取自 BCB5 DoubleBuffered 的線上說明
引言: Description When DoubleBuffered is false, the windowed control paints itself directly to the window. When DoubleBuffered is true, the windowed control paints itself to an in-memory bitmap that is then used to paint the window. Double buffering reduces the amount of flicker when the control repaints, but is more memory intensive. When a windowed control is a dock site and has an associated dock manager, it must be double-buffered.就是說當 DoubleBuffered 為 TRUE 時,元件在更新畫面時,會先將要更新的部分畫在內部記憶體,等全部需要更新的部分都畫完後,再一次更新的元件上,這樣可以避免使用者看到中間更新的過程,可以減少閃爍情況,而其缺點是,會多占用一些記憶體。不過,我想這是值得的 <>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
8325100
一般會員 發表:7 回覆:7 積分:2 註冊:2003-05-26 發送簡訊給我 |
|
loosir
一般會員 發表:2 回覆:6 積分:1 註冊:2003-07-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |