我要在每一层(level)的结点中插入一些新结点,怎样才能遍历这一层的结点呢?
谢谢!!!

解决方案 »

  1.   

    var
    i:integer;
    begin
      for i:=0 to treeview1.Items.Count-1 do begin
        if treeview1.Items[i].Level=? then ...
      end;
    end;
      

  2.   

    var
    i:integer;
    begin
      for i:=treeview1.Items.Count-1 downto 0 do begin
        if treeview1.Items[i].Level=? then ...
      end;
    end;
    如果要插入节点的话,得倒着来
      

  3.   

    to: artwind(菲菲)  这种方法我有想过,但是我的items的个数在这个循环里还会不断的创建,如果创建得多了,那么就会有部会‘当前层’的结点遍历不到。
      

  4.   

    用 TreeNode 的 GetNext 和 GetNextSibling 方法。
    GetNext:取得下一个节点(包括同层和孩子节点);
    GetNextSibling:取得同层的下一个节点(同父节点);var 
      i:integer;
      tempNode,levelNode:TTreeNode;
    begin
      tempNode:= treeView1.items[0];
      while tempNode<>nil do 
      begin
        if tempNode.Level = ? then
        begin
          //使用循环读取所有的 GetNextSibling 
          levelNode:= tempNode.GetNextSibling;
          ......
        end else
        begin
          tempNode:= tempNode.GetNext;    
        end;
      end;
    end;
      

  5.   

    if CurrentNode.Parent=nil then tempNode=TreeView1.Items[0] else
      tempNode:=CurrentNode.Parent.GetFirstChild;
    repeat
      do something here;
      tempNode:=tempNode.GetNextSlibling
    until tempNode=nil;