一个让我感到困惑的问题(50分)

  • 主题发起人 主题发起人 jstkof
  • 开始时间 开始时间
J

jstkof

Unregistered / Unconfirmed
GUEST, unregistred user!
用TTreeView组件加500个节点,用了7秒多钟。可是在pb中实现同样的功能(在一个类似
TTreeView的组件中加500个节点),眨眼间就完成了(眨眼间是多快,就不用在下告诉
各位大侠了吧)。于是我感到很困惑,不同语言之间的差异有这么大吗?而且爆慢的那个
居然是据说可与C++相比的delphi,太不可思议了。这是怎么回事呢?下面是delphi代码:
var
i: integer;
begin
for i := 0 to 500 do
treeview1.items.add(nil,inttostr(i));
end;
 
怎么会呢?刚用你的代码作了测试,也是一眨眼的工夫就完了!!!
 
不可能,确定你用的是TTreeView?
 
先加入到数组然后再加入到TTreeView,这样只刷新一次。快多了!
 
楼上这位大侠:
数组能实现类似treeview的结构吗?我不明白你的意思。
 
试一下
不会呀,一秒都没用到。
 
绝对是ttreeview, copy 你的源码,在form 的 doubleclick事件里触发,
一眨眼的工夫就完了(绝对不出0.5s,哪里会用7秒钟),我的机器:ibm p3 933,256M。
 
不好意思,忘了告诉各位了,我用的是delphi 5。不知道各位用的是不是delphi 6。
但是5和6的差别有这么大吗?TTreeView应该是一个很简单的组件,不会有多大改动啊。
 
现在用的的确是d6,不过我记得以前用d5的时候也挺快的啊?[?]
 
哈哈,加两行代码,你就飞起来了!

var
i: integer;
begin
TreeView1.Items.BeginUpdate;
for i := 0 to 500 do
treeview1.items.add(nil,inttostr(i));
TreeView1.Items.EndUpdate;
end;
 
我试了n次了,确实要用7秒多,不解。
 
原来如此,小弟学艺不精,惭愧啊,散分。
 
果然很快!还是老艾狠!!! [:D]
 
Ttreeview在D6和D5的确是有不同,我用D5和D6测试了一下,相差大概是十倍的时间。
D5是使用AddObject函数进行添加的,D6是使用AddNode函数进行添加,D6下也有AddObject,
但AddNode是新加的函数
 
后退
顶部