在程序中我已展开了treeview的第一层结点比如为(a,b,c,d),但逐个往第一层中的结点中添加数据时都加在了节点 a 中。
 示意
  本意:      目前结果:         
      a             a
       a1             a1
      b               b1
       b1             c1
      c               d1 
       c1           b
      d             c
       d1           d
   
 使用的语句:
for i:=1 to 5 do
 begin
    treeview1.Items.AddChild(treeview1.Items.Item[1],xxxxxx);  
    //xxx为变量
   ....
 end;
请问我哪里出错了?

解决方案 »

  1.   

    treeview1.Items.AddChild(treeview1.Items.Item[i],xxxxxx);  
                                               ~~~~~~~~是否这里
      

  2.   

    不行,成了
            a
              a1
                a2
                   a3
      

  3.   

    可以这样:
    const
      ss: array[0..3] of string =('a1','b1','c1','d1');
    var
      CurNode: TTreeNode;
      i:integer;  begin
        CurNode:=TreeView1.Items[0];
        for i:=0 to 3 do
        begin
        TreeView1.Items.AddChild(CurNode,ss[i]);
        CurNode.Expand(true);
        CurNode:=CurNode.getNextSibling;
        end;
      end;
      

  4.   

    var
    p_Node: TTreeNode;//定义父节点变量
    begin
      p_Node := Treeview1.Items.Add(nil,'a');
      TreeView1.Items.AddChild(p_node,'a1');
    end;最后根据你的情况加上循环就行了