我通过递归取得树中的子结点,
但始终不行!只能取得该结点下面的第一层子结点!function TDUserRole.GetChildNodeList(Node: TTreeNode): String;
Begin
  While (Node <> nil) Do
  begin
    GetChildNodeList(Node.getFirstChild , BeginLevel);
    Node := Node.getNextSibling;
    Result := result + ',' + node.Text
  end;
end;调用的时候:
procedure TDUserRole.TreeViewChange(Sender: TObject; Node: TTreeNode);
var nodelist : string;
begin
 nodelist := GetChildNodeList(Node.GetFirstChild);
end;为什么我只能取得第一层的子结点:
如:
 A
 | B
 | | C
 | | | D
 | | | |D1        
 | | E
 | F
 | G
通过以上程序,当我单击A的时候,只能取出B,F,G的值,而我希望得取的结果是:
B,C,D,D1,E,F,G
我分析以上程序的时候,始终找不到问题出在哪儿!
跟踪程序发现当递归调用于C的时候,函数又为RESULT的值又成了空,
但不知道这个问题怎么解决?