TListView 的不足(159分)

  • 主题发起人 主题发起人 fatBaby
  • 开始时间 开始时间
F

fatBaby

Unregistered / Unconfirmed
GUEST, unregistred user!
我喜欢用 TListView
可以当我从 Database 中读上一千条记录,并写入 TListView 的时候,
它只能装下 1000 条左右,
再多的话,速度极慢,而我现在被要求能装下 十万 条,且不说我不知道
能不能装,它的速度已经令我不敢想像,我想大概两三个小时也不够吧!
请问谁有解决的办法,或可以替代的控件 ??
 
你不应该一次装入全部记录,而是应该
用户想显示那一部分,就装入那一部分
你可以看看dbgrid的代码,它就是这么
干的,它响应滚动等消息来判断用户想
看那条记录,只加载很少的数据。
 
你的数据如果可以分组的话,先生成组,在选了该组后,再去生成他的各项。
相当于把时间分散了。
 
1, 装少点
2, beginupdate;
开装;
endupdate;
 
看看delphi自己的那个例子: vitrul listview,
不要一次全部装进去,先装到一个TList里面,然后只要指定listview的itemcount
就可以了,当需要显示的时候会自动触发OnData事件,在这个事件里面再从Tlist
取出数据给Item赋各种属性.(还可以结合OnDataHint事件)

前提是Ownerdata := True;
 
必须一次全部装入,否则就改用 DbGrid 了。cAkk 的方法我试试看,不知道
行不行。不过我看 ListView 的源码写得不是很好,所以我想如果有第三方的
控件,估计效果能改善


 
见鬼,不是TListView 的问题了

现在是装入的问题了,

的确一下子装入 几万条是要花上一些时间 ...
 
d4技术内幕中有个例子,大家找找看,好象搞个temp listviw,然后在打开一个节点时,
再读入相应节点的内容,有代码的。
 
还是用 vitrul listview 的方式最好!!

 
cAkk 的方式最好

 
接受答案了.
 
后退
顶部