选中一个节点,把该节点下的所有节点(无论有无子节点)的Text属性添加到
ListBox1中,急急急……

解决方案 »

  1.   

    给你思路自己去实现
    得到当前节点的level,用当前节点的AbsoluteIndex到treeview的items.count-1去遍历,遍历终止条件是某个节点的level小于你的那个父节点的level就这样
      

  2.   

    哦  错了 是某个节点的level=你那个父节点的level就终止遍历
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, StdCtrls;type
      TForm1 = class(TForm)
        TreeView1: TTreeView;
        ListBox1: TListBox;
        procedure TreeView1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.TreeView1Click(Sender: TObject);
    var i:integer;
    begin
    listbox1.Clear;
    if (treeview1.Selected.Count>0) then
        for i:=0 to Treeview1.Selected.Count-1 do
            listbox1.Items.Add(treeview1.Selected.Item[i].Text);
        end;
    end.
      

  4.   

    树的递归算法。  procedure GetFrameWorkIDList(Node : TTreeNode; var AIDList: TStringList);
      begin
        AIDList.Add(Node.Text);
        if Node.getFirstChild <>nil then
          GetFrameWorkIDList(Node.getFirstChild, AIDList);
        if Node.getNextSibling <> nil then
          GetFrameWorkIDList(Node.getNextSibling, AIDList);  end;
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
     i:integer;
    begin
      for i:=0 to TreeView1.selected.Count-1 do
      begin
        showmessage(TreeView1.selected.item[i].text)//自己换成加入ListBox1
      end;
    end;
      

  6.   

    给你个例子
    procedure TForm1.Button1Click(Sender: TObject);
    var
      myNode : TTreeNode;
      myLevel : integer;
    begin
      ListBox1.Clear;
      myNode := TreeView1.Selected;
      if myNode <> nil then
      begin
        myLevel := myNode.Level;{    //要不包含选中结点则加上:
        myNode := myNode.GetNext;
        if myLevel <> myNode.Level then
    }
        repeat
          ListBox1.Items.Add(myNode.Text);
          myNode := myNode.GetNext;
        until (myNode = nil) or (myLevel = myNode.Level);
      end;
    end;
      

  7.   

    做个递归函数不就行了嘛!
    function TForm1.ReadChildNode(ParentNode:TTreenode):TTreenode;
    var 
      childnode:TTreenode;
    begin
      childnode:=ParentNode.GetFirstChild; //按获得第一个子项
      while childnode<>nil do
      begin
        ListBox1.Items.Add(childnode.Text);
        childnode:=ReadChildNode(childnode); //如子项不为空,进行递归调用
      end;
      result:=ParentNode.parent.GetNextChild(ParentNode); //定位到该节点的下一节点
    end;