我最近在做一个系统,里面有一个模块是要显示公墓的占用情况(有12000个公墓),于是我采用了动态生成控件的办法(如果占用就显示图片1,如果没占用就显示图片2),并且还加了进度条,虽然可以实现,但是速度太慢了,大约在前面的1000里只用1分钟,但后面的简直慢得不行啦,有2小时之久。 问题一:有什么办法可使速度加快?。 问题二:如何采取多线程的方法实现? 问题三:如果不用动态生成控件的办法,还能用什么办法?
解决方案 »
- 如何向SysListView32的某一项发送双击动作?
- 请教各位了??如何使用BDE组件连接访问DBF数据文件(表)??
- 工具栏按钮的 AutoSize 属性的问题!为什么没有 Caption 时,按钮尺寸和图片大小不相符!
- 如何将olecontainer中的word文档存入数据库?
- 有msdn的問題?????????????????????????????????
- 请教各位大哥,如何暂时锁定交换文件的大小?
- 软件说明书应该写些什么(第一次写)?
- 报表问题,100分!!!
- 把clientdataset传入dll后,不能访问fields[i]的displayformat
- 请问如何复制光盘中的隐藏目录下的文件,特别是不知道有什么和多少隐藏目录时?
- 大家看看,这是不是delphi的bug? up有分
- 一只笨鸟问?
就是说没必要两万个都显示出来
显示器不大,只计算要是显示的部分类似VirtualTree和VirtualList技术,网上找例子去研究了
1、不要需要显示20000条信息就动态创建20000个控件,机器肯定吃不消
2、适当利用缓冲的办法
3、多线程也可考虑,比如要画1000个,用两个线程,每个负责500,但不会省太多心
4、Canvas肯定比动态控件快
我只随便说说,楼主自己斟酌
如有不妥之处,各位大侠斧正!!!