用TListView加入1000个数据,每个数据有15个字符,加入和清除时较费时,有无加快的办法.(100分)

  • 主题发起人 主题发起人 wenna
  • 开始时间 开始时间
代码如下
//---------------------------------------------
ListView1.Items.BeginUpdate;
...
//在这里添加或者删除
...
ListView1.Items.EndUpdate;
//---------------------------------------------
Beginupdate和endupdate的作用是:
Prevents updating of the list view until the EndUpdate method is called.
(来自delphi帮助文件)
 
Owner Draw 算了。1,000,000,000 个也很快。
 
to mikedeakins
更新速度慢,是因为每次添加或者删除一个item
显示到要更新,用owner draw也存在这个问题。

用beginupdate,可以避免不必要的现实更新,
只有到endupdate才会重画
 
和treeview的刷新办法是一样的

ListView1.Items.BeginUpdate;
...
listview1。clear;
...
ListView1.Items.EndUpdate;
是有用的,至少对于treeview是很有用的饿,我试过了
 
beginupdate 是有作用的。如果数据太多机器太慢再考虑 Owner Draw.
 
最快的方法delphi自己有demo的,看看这个:
:/Program Files/Borland/Delphi5/Demos/Virtual Listview
 
应该用Owner Draw。飞快!
 
确切的说,是不往ListView里添加删除item,事实上用ownerdata一样飞快,
原理是一样的,就是只去读取需要显示的数据
 
多人接受答案了。
 
后退
顶部