如何得到treeview中一个节点下的所有叶子节点,包括其子目录节点中的叶子节点,而不包括子目录节点。????

解决方案 »

  1.   

    叶子结点是不包括有子结点的结点,用递归.var
        str:array of string;///////保存所有下面的结点的text
        cnt:integer;////////下面结点的个数procedure TForm1.GetChildNode(Node:TTreeNode);
    var
        i:integer;
    begin
        for i:=0 to Node.Count-1 do
        begin
            if Node.Item[i].HasChildren=false then
            begin
                str[cnt]:=Node.Item[i].Text;
                inc(cnt);
            end else
                GetChildNode(Node.Item[i]);
        end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
        i:integer;
    begin
        setlength(str,TreeView1.Items.Count);
        GetChildNode(TreeView1.Selected);    Memo1.Lines.Clear;
        for i:=0 to cnt-1 do
            Memo1.Lines.Add(str[i]);
    end;