最近发现用StringGrid读入1000条记录有20个字段只有1-2秒,用listview用9-10秒,读入10000条时相差更大,10-20倍用时,list

  • 主题发起人 主题发起人 apower
  • 开始时间 开始时间
A

apower

Unregistered / Unconfirmed
GUEST, unregistred user!
最近发现用StringGrid读入1000条记录有20个字段只有1-2秒,用listview用9-10秒,读入10000条时相差更大,10-20倍用时,listview随记录增多,3000条以上吧,越来越慢,如果解决速度问题???又不想改用StringGrid,因为listview界面很友好,排序. (100分)<br />最近发现用StringGrid读入1000条记录有20个字段只有1-2秒,用listview用9-10秒,
读入10000条时相差更大,10-20倍用时,listview随记录增多,3000条以上吧,越来
越慢,如果解决速度问题???又不想改用StringGrid,因为listview界面很友好,
排序方便,高手们,请发表。。。
在ListView中设置为Report,如何快速查找其中的数据,如姓名,身份证,地址等,最好能
模糊查找,要求速度要快,查找后快速定位于该条记录?请教!谢!
 
在LIstView中的查找算法最好是自已写
 
声明一个动态数组,将ListView里的数据读入数组,然后进行各种排序,最后遍历查找
 
listview有一个方法 FindCaption 可以快速查找部分字符串
 
不过 ListView 的 FindCaption 方法只能在第一列中查找哦:-)
 
先查出第一列然后再查后面的嘛
 
除了遍历每一行查找几乎没有什么好的方法。至于模湖我倒有一个比较字符串的简单算法,
可以让你的目标串中带*和?。
另外很多ListView支持列点击排序。
 
除了遍历每一行查找几乎没有什么好的方法。至于模湖我倒有一个比较字符串的简单算法,
可以让你的目标串中带*和?。

这样的方法我倒是没有试过,去试试
 
在往里添加数据时就排好序
然后用二分查找
 
for cuteh:

楼上的怎么是用二分查找呀?我很菜的,能不能给点源代码,简单的也行,谢谢了!
 
在LISTVIEW刷新的时候用
listview.beginupdate
导入数据完成后
listview.endupdate
但是这不是根本的解决方法,LISTVIEW天然就不是用于读入大数据量和表现数据库内容的。
你可以用DEV的QGRID,一样可以做出LISTVIEW的效果。。
 
没有必要显示那么多的数据呀。
 
用线程,我试过即使写入10000条记录也看不出有什么停顿。
 
如何用綫程啦,請給個例子吧!
 
listview 比 StringGrid 好在哪?
 
如果显示数量少&lt;300,用ListView还可以,我觉得就好在可以自动多列显示。其他的StringGrid都能做到,如果已经有了数据链表,用DrawGrid更好,速度更快,而且更灵活
 
参考一下Delphi自带的例子:
Demos/Virtual Listview
Listview根本不需要存储任何数据
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部