gpt4 book ai didi

delphi - 从 ListView 切换到 VirtualStringTree

转载 作者:行者123 更新时间:2023-12-03 14:45:03 24 4
gpt4 key购买 nike

由于速度差异巨大,我正在尝试使用 VirtualStringTree 而不是 Listview 来构建我的项目。问题是,即使在浏览了演示之后,我还是无法确切地弄清楚如何将它用作 ListView。添加、删除以及基本上使用 ListView 项目是如此简单,但是当我查看 VT 时,它几乎变得太复杂了。

我正在寻找的是一个看起来像ListView的VT,带有子项等。

这里有一些使用 ListView 的例程,我想将它们与 VT 一起使用(这只是一个伪示例:

procedure Add;
begin
with ListView.Items.Add do
Begin
Caption := EditCaption.Text;
SubItems.Add(EditSubItem.Text):
End;

end;

Procedure ReadItem(I : Integer);
begin

ShowMessage(ListView.Items[I].Caption);
ShowMessage(ListView.Items[I].SubItems[0]);

end;

当然,还有删除功能,但由于那就像 1 行,所以我没有打扰:P

有人可以将上面的例子翻译成使用ListView风格的VT吗?

谢谢!

最佳答案

为什么不在虚拟模式下使用 ListView ?这看起来、感觉起来都不错,而且性能也很棒。

Delphi TListView 控件是 Windows ListView 组件的包装器。在其默认操作模式下,列表数据的副本将从您的应用程序传输到 Windows 控件,这很慢。

替代方案在 Windows 术语中称为虚拟 ListView 。您的应用程序不会将数据传递给 Windows 控件。相反,当控件需要显示数据时,它只会向您的应用询问所需的数据。

Delphi TListView 控件通过使用 OwnerData 属性公开虚拟 ListView 。您必须稍微重写 ListView 代码,但这并不太难。

我还提供了另一个 question 的链接这里涵盖了类似的内容。相当奇怪的是,该问题的接受答案谈到了列表框,尽管问题是关于 ListView 控件的。

关于delphi - 从 ListView 切换到 VirtualStringTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com