我的Treeview格式是这样的
 +aa
   -aa1
   -aa2
 +bb
   -bb1
   -bb2
 +cc
   -cc1
   -cc2
       我自己写了一个可以得到数值的
        i:=0;
       while Treeview1.Items.Count>0 do
        Try
        if Treeview1.Items[i].Level=0 then   //这里是判断他是不是父节点
         memo1.Lines.Add(Treeview1.Items[i].Text);
        i:=i+1;
        except
        break; //如果有异常就自动退出
         end;

但是这样写的话的是非常麻烦,我想问的是能不能直接用他自带的参数来获取
        
       Treeview1.items.count 像这样取得他所有的行
      
        而Treeview1.selected.Count 这是判断当选中后的在父节点后的每一个子节点数
那么也应该有直接取得TReeview1中的最顶的父节点数呀......

解决方案 »

  1.   

    那么也应该有直接取得TReeview1中的最顶的父节点数呀......所以我想请教一下朋友们有没有人实践过....
      

  2.   

    var
      Node: TTreeNode;
    begin
      Node := TreeView1.Items.GetFirstNode;
      while Node <> Nil do
        begin
          //在这里数或处理
          Node := Node.getNextSibling;
        end;
    end;
      

  3.   

    var
      Node: TTreeNode;
      i: Integer;
    begin
      Node := TreeView1.Items.GetFirstNode;//获得根节点
      while Node <> Nil do
        begin
          //在这里数或处理
          inc( i );
          Node := Node.getNextSibling;//获得同级下一结点
        end;
    end;已经是最简单的了
      

  4.   

    把TreeView封装一下,或者对相应的事件做个处理,添加一个计数,每添加一个顶级节点,就做一个计数,甚至还可以对顶级节点做一个列表管理.
      

  5.   


    如此庞大的工程,不够技术呀.想写一个过程让他每一次循环的时候都调用当前所选中的父节点
    Treeview.items[1].text
    这时就选中了第一个父节点
    Treeview.items[2].text
    这时就选中了第二个父节点procedure TForm1.Button8Click(Sender: TObject); //这里是整条直接取父项的原码
    var
    f:Ttreenode;
    i:integer;
    begin
    memo1.Clear;
    i:=0;
    f:=treeview1.Items[0];
      while f<>nil do
      begin
         memo1.Lines.Add(f.Text);
         f:=f.getNextSibling;
         i:=i+1;
      end;
      memo1.Lines.Add('一共有'+inttostr(i)+'个父节点')  
    end;
          但是我想问的是如何在将他写成一个函数然后放进循环里面每循环一次然后将他的值取一条相应的父项值出来呢?请给一些现实的代码。
      

  6.   

    Node := TreeView1.Items.GetFirstNode;//获得根节点
    Treeview1.Items[i].Parent //取父节点
      

  7.   


    var
      i: integer;
    begin
      for i:=0 to treeview1.Items.count-1 do
      begin
        if treeview1.Items[i].Level=0 then
          begin
            //取得根节点的name
          end;
      end;已经很简单的了。