//参考如下代码~~ procedure TForm1.Button1Click(Sender: TObject); var I: Integer; vTreeNode: TTreeNode; begin Memo1.Clear; Memo1.Lines.Add('<?xml version="1.0" encoding="GB2312"?>'); Memo1.Lines.Add('<TreeView>'); for I := 0 to TreeView1.Items.Count - 1 do begin vTreeNode := TreeView1.Items[I]; if vTreeNode.HasChildren then Memo1.Lines.Add(Format('%s<TreeNode Text=%s>', [StringOfChar(#9, vTreeNode.Level + 1), QuotedStr(vTreeNode.Text)])) else Memo1.Lines.Add(Format('%s<TreeNode Text=%s/>', [StringOfChar(#9, vTreeNode.Level + 1), QuotedStr(vTreeNode.Text)])); if not vTreeNode.HasChildren then while Assigned(vTreeNode) do begin if (vTreeNode.Level > 0) and (vTreeNode.getNextSibling = nil) then Memo1.Lines.Add(Format('%s</TreeNode>', [StringOfChar(#9, vTreeNode.Level)])) else Break; vTreeNode := vTreeNode.Parent; end; end; Memo1.Lines.Add('</TreeView>'); end;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
vTreeNode: TTreeNode;
begin
Memo1.Clear;
Memo1.Lines.Add('<?xml version="1.0" encoding="GB2312"?>');
Memo1.Lines.Add('<TreeView>');
for I := 0 to TreeView1.Items.Count - 1 do begin
vTreeNode := TreeView1.Items[I]; if vTreeNode.HasChildren then
Memo1.Lines.Add(Format('%s<TreeNode Text=%s>',
[StringOfChar(#9, vTreeNode.Level + 1), QuotedStr(vTreeNode.Text)]))
else Memo1.Lines.Add(Format('%s<TreeNode Text=%s/>',
[StringOfChar(#9, vTreeNode.Level + 1), QuotedStr(vTreeNode.Text)])); if not vTreeNode.HasChildren then
while Assigned(vTreeNode) do begin
if (vTreeNode.Level > 0) and (vTreeNode.getNextSibling = nil) then
Memo1.Lines.Add(Format('%s</TreeNode>',
[StringOfChar(#9, vTreeNode.Level)]))
else Break;
vTreeNode := vTreeNode.Parent;
end;
end;
Memo1.Lines.Add('</TreeView>');
end;