登录站点

用户名

密码

把TreeView导出为文本文件

已有 255 次阅读  2008-11-14 13:13   标签treeview  导出  为文  文件 
 procedure ExpandChild(
      const ANode   : TTreeNode;
      const AList   : TStrings;
      const ALevel  : string = ''
      );
  //展开子节点
  var
    i       : Integer;
  begin
    if ANode.Count = 0 then Exit;
    for i := 0 to ANode.Count - 2 do
    begin
      AList.Add(ALevel + '├' +ANode.Item[i].Text);
      ExpandChild(ANode.Item[i],AList,ALevel + '│');
    end;
    AList.Add(ALevel + '└' +ANode.Item[ANode.Count-1].Text);
    ExpandChild(ANode.Item[ANode.Count-1],AList,ALevel + ' ');
  end;

  procedure ExportNode(
      const ANode     : TTreeNode;
      const AFileName : string
      );
  //导出节点
  var
    aList : TStrings;
  begin
    aList :=  TStringList.Create;
    try
      aList.Add(ANode.Text);
      ExpandChild(ANode,aList);
      aList.SaveToFile(AFileName);
    finally
      aList.Free;
    end;
  end;

调用:
  if dlgSave.Execute then
    ExportNode(TreeView1.Selected,dlgSave.FileName);

结果示例:
窗口查看器 - TFrmWindowView
├(空) - TListBox
├(空) - TCoolBar
│├(空) - TToolBar
│├(空) - TToolBar
││├(空) - TPanel
│││├搜索 - TButton
│││└(空) - TEdit
││└搜索文本: - TPanel
│└(空) - TToolBar
│ └捕获 - TPanelEx
├(空) - TStatusBar
├(空) - TTreeView
└(空) - TListBox 


分享 举报