如题!

解决方案 »

  1.   

    for I := 0 to TreeView1.Items.Count -1 do ShowMessage(TreeView1.Items.Text);
      

  2.   

    根节点循环?
    這樣寫;
    procedure tfm_main.SelectNode(const Tx: string; Tree: TTreeView);
    var
      node : TTreeNode;
    begin
      if Tx = '' then exit;
      node := Tree.Items[0]; {get the top node / items[0]}
      while (node <> nil) do begin
        if node.Parent=nil then
        begin
          showmessage('根接點'+mytreenode.Text);
        end;
        node := node.GetNext; {get the next node}
      end;
    end;
      

  3.   

    如果不用弟归,可以这样做:
    1,取得该节点的AbsoluteIndex;
    2,找到该节点的下一个相邻节点的AbsoluteIndex;
    3,那么,大于从该节点的AbsoluteIndex且小于邻节点的AbsoluteIndex的所有节点就是该节的所有子节点
      

  4.   

    大家为什么都要把简单的问题复杂化。一两行简单代码就直接高效解决的问题非要扯到递归什么的。
    参考sousouwjh(sousouwjh)的示例,循环中用GetNextSibling直接取同级节点。顺提:GetNext、GetNextSibling等方法要比Items[n]速度快很多。