我从数据库中取出大量数据往LISTVIEW中填入时速度很慢,有没有快速填入数据的办法?
解决方案 »
- DBGridEh如何实现某列设为下拉选择并附给数据源
- Delphi 代码跟踪的问题
- 如何用quickreport实现多个表的打印和统计?急啊!
- 过不过四级?大妈大叔们给个意见
- 赠送本人在北京中科院计算机所参加Delphi培训的讲义,有人需要吗?
- 问一个比较菜的问题,请大家帮个忙!
- 我的一个哥们儿用VC开发了一个DLL文件,让我在DELPHI下调用,但是我不知道怎么调~?他给我的DLL文件为:(DATA.DLL);具体怎么用,请就以下
- 如何使用treeview控件的一些属性?
- 我想在窗体失去焦点时触发一个过程,但窗体没有onExit事件,用什么法呢?
- 征求连接
- 请教:Rave 报表中如何在每一页上都显示打印表头
- 在rave中如何使编辑区的纸张变为横向显示
AfterScroll,BeforeScroll: TdatasetnotifyEvent;//好像是这个 机器上没delphi记不清listview.items.beginupdate;
try
dataset.disablecontrol;
try
afterscroll :=dataset.afterscroll;
beforescroll :=dataset.beforescroll;
dataset.afterscroll :=nil;
dataset.beforescroll :=nil;
try
while not dataset.eof do
begin
dataset.first;
with listview.items.add do
begin
caption := ....
subitems.add('...');
...
end;
dataset.next;
end;
finally
dataset.afterscroll :=afterscroll;
dataset.beforescroll :=beforescroll;
end;
finally
dataset.enablecontrol;
end;
finally
listview.items.endupdate;
end;在达不到你的要求就换组件吧
C:\Program Files\Borland\CBuilder6\Examples\VirtualListView
>可以用Virtual ListView的方式,但数据要自己管理。
>
>我用的是BCB,有例子:
>C:\Program Files\Borland\CBuilder6\Examples\VirtualListViewDelphi下也有这个例子,同名。
不过,我自己仿照这个例子写的程序,ListView不停的刷新和闪烁,不晓得是不是和我的Columns是动态生成的有关?
ListView.BeginUpdate;
......
ListView.EndUpdate;
在这两句之间的所有改动将不会触发ListView的重绘,因而消除了闪烁并提高了更新速度。
我有一个4000记录的显示,原来花2分40秒,现在缩短到30秒,如果改进数据库结构,可能5、6秒就能显示出来。