Delphi 實時快速顯示大量資料,會閃屏,怎么解決?
uj5u.com熱心網友回復:
求大神回復!uj5u.com熱心網友回復:
求大神回復!uj5u.com熱心網友回復:
求大神回復!uj5u.com熱心網友回復:
不知道你是用的什么空間,如果是list的話可以使用虛擬串列。虛擬串列
uj5u.com熱心網友回復:
對于人類來說,多快最實時。電影都是24幀/秒,游戲是30~100幀/秒,但是這個是建立在人可以預測的連續變化基礎上的。如果不是可預測,非連續變化,如播放幻燈片,一般是3~5秒1幀,快的也超過1秒1幀。
好,回到你的問題,為什么要實時,要看清資料的話需要1秒,你的程式只需要100ms重繪一次界面就可以了,如果是影片,10ms重繪一次就可以。
大量資料?一屏能顯示多少行資料?10行?100行?還是1000行?其實能顯示出來的只有幾十行資料,只是重繪顯示的這幾行是沒不會有任何壓力的。
TStringGrid 自畫界面,600萬行資料10ms重繪沒有任何壓力。
uj5u.com熱心網友回復:
讀大資料閃屏,是讀取資料與螢屏重繪,相互爭搶CPU資源造成。uj5u.com熱心網友回復:
我想你應該說得更加詳細些,這樣別人才能幫到你。uj5u.com熱心網友回復:
主要看是什么控制元件來顯示!各種控制元件控制閃爍的手段也是不同的!uj5u.com熱心網友回復:
application.processmessageuj5u.com熱心網友回復:
讀大資料閃屏,是讀取資料與螢屏重繪,相互爭搶CPU資源造成。uj5u.com熱心網友回復:
如果有doublebuffer屬性,設定為true試試uj5u.com熱心網友回復:
查詢程序寫入執行緒uj5u.com熱心網友回復:
上面好多大牛。。。學習中uj5u.com熱心網友回復:
使用LockWindowUpdate進行鎖屏操作,完成后進行解鎖uj5u.com熱心網友回復:
閃屏的區域設定DoubleBuffered := True;uj5u.com熱心網友回復:
沒那么復雜。ADOQuery1.DisableControls
。。。。。
ADOQuery1.EnableControls
uj5u.com熱心網友回復:
樓上的方法好像不錯。。。uj5u.com熱心網友回復:
virtu list也是不錯的方法 學習了。。。uj5u.com熱心網友回復:
推薦用TNXGRID控制元件來加載資料uj5u.com熱心網友回復:
啟用doubleBufferd;如果是表格的是先beginupdate ....... endupdateuj5u.com熱心網友回復:
這個用過,簡單明了
uj5u.com熱心網友回復:
有效,支持。uj5u.com熱心網友回復:
不要立即畫在螢屏上。50毫秒一次,畫在記憶體里自建的TBitmap里。然后貼到Canvas上。
uj5u.com熱心網友回復:
實時顯示太快,就算不閃也沒有意義了, 人看不到有啥意義。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98913.html
標籤:VCL組件開發及應用
下一篇:如何禁用/啟用 COM口
