我通过递归取得树中的子结点,
但始终不行!只能取得该结点下面的第一层子结点!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的值又成了空,
但不知道这个问题怎么解决?
但始终不行!只能取得该结点下面的第一层子结点!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的值又成了空,
但不知道这个问题怎么解决?
解决方案 »
- 用DELPHI模拟LED屏下的那种文字特效怎么做啊?
- delphi 当前目录 有没有指定文件
- delphi7 tcpclient和server有个问题。麻烦!
- 这样一个function 如何写?
- 用DBgrid录入的问题?在线等!在线等!在线等!在线等!在线等!在线等!在线等!在线等!在线等!在线等!
- 如何向打开的Word文档中插入保存在文本文件中的VBA脚本,并运行它?
- 文件方面的问题
- 另一个执行程序中有三个edit如何分别取出并确定是那一个
- 如何遍历窗体中的bitbtn按钮???
- 如何删除一个目录,好像用DeleteFile不行!高手快帮忙
- ehlib能不能脱离数据库连接使用
- 转让delphi书籍(最好在南宁交易)
function TDUserRole.GetChildNodeList(Node: TTreeNode): String;
Begin
While (Node <> nil) Do
begin
GetChildNodeList(Node.getFirstChild);
Node := Node.getNextSibling;
Result := result + ',' + node.Text
end;
end;