TListView性能问题

LeG*_*GEC 0 delphi vcl

我试图使用一个TListView组件来显示相当大的数据列表(如4000行大),并且创建列表的速度非常慢 - 这需要2-3秒,这使得UI全部滞后并且几乎无法使用.

我在TListView.Items内部填充一个BeginUpdate/EndUpdate块,只有预分配的字符串 - 我的意思是:我构建了一个存储所有字符串的列表(没有人类明显的时间),然后我把它们放在TListView中.

我希望在vsReport具有多个列的模式下显示TListView的内容.

代码如下所示:

MyList.Items.BeginUpdate;
for i := 0 to MyCount - 1 do
begin
  ListItem := MyList.Items.Add;
  ListItem.Caption := StrCaptions[i];
  ListItem.SubItems.Add(StrSubItems1[i]);
  ListItem.SubItems.Add(StrSubItems2[i]);
end;
MyList.Items.EndUpdate;
Run Code Online (Sandbox Code Playgroud)

我在TListView组件的逻辑中错过了一些其他的黑客攻击吗?或者我应该忘记使用这个组件进行表演?

Ond*_*lle 7

您可以在虚拟模式下使用listview.看看virtuallistview.dpr演示.