TreeView如何快速创建~!?(一级树) 数据库中大概有50000条数据,循环加载太没效率了。要将近一分钟时间~!大家有没什么好的算法呀。。金山词霸的数据好象也60000以上,,加载时(全部加载了)却一下就好了。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. 搞清楚是从数据库取数据慢,还是加到树中慢2. 用 BeginUpdate 和 EndUpdate3. 如果是多级树,可以考虑分层加载4. 看看 http://blog.csdn.net/myy/ ,这里有个我写的快速加载多级树的算法 对的,多级树都是分层加载的你打开Windows的资源管理器,选中左边的“我的电脑”,然后按小键盘上的*号键看看Windows的多级树的完全加载需要多久另外5W条记录应该也是很快的 是一级的树。。从数据库读用 BeginUpdate 和 EndUpdate 好象没什么好转基本上一个样。。直接把50000记录拷到一个文本文件 然后 tree的LoadFromFile都要等上1分钟。。大家有没什么更好的办法,,或者讨论下 金山词霸 那样的快 是怎么实现的呀,, 还有用 多线程同步 读取刷的一下 cpu 100% 死机了不用同步 除了界面 不死外 速度上也没改善呀~! 从数据库读用 BeginUpdate 和 EndUpdate 好象没什么好转基本上一个样。。------------------------是不是没有用对啊?如果TTreeView可见,你原来没用BeginUpdate/EndUpdate 现在用了,绝对不一样!TreeView1.Items.BeginUpdate ;TreeView1.Items.Clear;// 这里加载节点....TreeView1.Items.EndUpdate ; 是呀。。就是这么用的呀。。MainForm.TreeView.Items.BeginUpdate;for I:=0 to StrList.Count-1 dobegin Node := TreeView.Items.AddChild(nil,itemP.name);end;TreeView.Items.EndUpdate;一样要1分钟左右 有没别的方法能提升速度? 以后可能还会加数据哦。。 http://topic.csdn.net/t/20040730/11/3226114.html看13楼 zswangII (伴水清清)(一贴不灌,何以灌天下?) 的回复 怎样使当前执行程序窗口一直置前? 接口问题2兼散分 现在每天不加分了吗?我的分数这几天一直没变呀/ treeview控件如何保存当然的状态?下次再运行程序恢复上次的状态? 关于鼠标 odac操纵数据库是遇到的奇怪问题,请高手指点 哪位兄台对QuickRep比较熟悉?帮我回答呀 很急的问题,帮帮我!!多谢!!给多分!! 象FlashGet那样,在图表日志查看每个蚂蚁连接,象ListView控件的地方能以各种不同颜色显示状态,是怎么做出来的??? 如何在DELPHI中调用一个COM组件 哪位大哥知道上海达冠科技,拖欠工资,现在找不到他了. sql查询出错问题
2. 用 BeginUpdate 和 EndUpdate
3. 如果是多级树,可以考虑分层加载
4. 看看 http://blog.csdn.net/myy/ ,这里有个我写的快速加载多级树的算法
你打开Windows的资源管理器,选中左边的“我的电脑”,然后按小键盘上的*号键
看看Windows的多级树的完全加载需要多久另外5W条记录应该也是很快的
------------------------
是不是没有用对啊?如果TTreeView可见,你原来没用BeginUpdate/EndUpdate 现在用了,绝对不一样!TreeView1.Items.BeginUpdate ;
TreeView1.Items.Clear;// 这里加载节点....TreeView1.Items.EndUpdate ;
for I:=0 to StrList.Count-1 do
begin
Node := TreeView.Items.AddChild(nil,itemP.name);
end;
TreeView.Items.EndUpdate;一样要1分钟左右 有没别的方法能提升速度? 以后可能还会加数据哦。。
看13楼 zswangII (伴水清清)(一贴不灌,何以灌天下?) 的回复