listview --> OwnerData 整理

本文介绍了如何使用Delphi的ListView控件的OwnerData特性来提高处理大量数据时的性能。通过将OwnerData设为true,设置Items.Count并利用OnData事件动态加载数据,可以显著提升ListView在显示成千上万条记录时的速度。同时,文章通过代码示例展示了如何使用STL中的vector来存储和管理数据,并提醒在OnData事件中避免使用SubItems的CommaText属性以防止闪烁问题。
摘要由CSDN通过智能技术生成

一、http://topic.csdn.net/t/20020728/13/905888.html

ListView在操作大量数据时慢的问题! (CSDN-CSDN社区-C++ Builder-基础类) :

 

--> 26楼   max_wzg (暴走-银狼) :

采用常规方法处理ListView,在数据量大时无论是还是用了BeginUpdata和EndUpdata()还是处理WM_EraseBkgnd信息都不会得到理想的效果,那答案是什么呢?
嗯,采用所谓Virtual   ListView。
说起来很神秘,其实点通了很简单。
在于把ListView-> OwnerData设为true,然后直接设置
ListView-> Items-> Count为数据总数,实际的数据可以保在任意其它速度较快且可直接索引的容器里(如STL中的vector),然后关键是在OnData事件中写入代码通过Item-> Index从容器中(如vector)取出数据,然后用
Item-> Caption   =   ???;
Item-> SubItems-> Add(???);
Item-> SubItems-> Add(???);
来动态的写入数据到ListView用于UI显示,如此Virtual   ListView即完成.

一个完整的简单例子如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值