文档章节

学习 TTreeView [6] - SaveToFile、LoadFromStream、SaveToStream、LoadFromFile

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 300
阅读 189
收藏 0

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

本例效果图:


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Memo1: TMemo;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{初始化 TreeView1}
procedure TForm1.FormCreate(Sender: TObject);
var
  Nodes: TTreeNodes;
  node: TTreeNode;
begin
  TreeView1.Align := alLeft;
  Nodes := TreeView1.Items;
  node := Nodes.Add(nil, '一连长');
  node := Nodes.AddChild(node, '一排长');
  node := Nodes.AddChild(node, '一班长');
  node := Nodes.AddChild(node, '战士1');
  Nodes.Add(node, '战士2');
  Nodes.Add(node, '战士3');
  Nodes.Add(node, '战士4');
  node := node.Parent;
  Nodes.Add(node, '二班长');
  Nodes.Add(node, '三班长');
  node := node.Parent;
  Nodes.Add(node, '二排长');
  Nodes.Add(node, '三排长');
  node := node.Parent;
  Nodes.Add(node, '二连长');
  Nodes.Add(node, '三连长');
end;

{保存到文件}
procedure TForm1.Button1Click(Sender: TObject);
const
  path = 'c:\temp\tree.txt';
begin
  TreeView1.SaveToFile(path);
  TButton(Sender).Caption := '保存';
end;

{从文件中载入}
procedure TForm1.Button2Click(Sender: TObject);
const
  path = 'c:\temp\tree.txt';
begin
  if FileExists(path) then TreeView1.LoadFromFile(path);
  TButton(Sender).Caption := '载入';
end;

{从流中读取}
procedure TForm1.Button3Click(Sender: TObject);
var
  stream: TStream;
begin
  stream := TMemoryStream.Create;
  try
    Memo1.Lines.SaveToStream(stream);
    stream.Position := 0;
    TreeView1.LoadFromStream(stream);
  finally
    stream.Free;
  end;
end;

end.

 
 
 
 
 

 

 

  
注意: 上面例子中的"从流中读取"部分, 对 Memo 中的数据格式有严格要求, 要求必须是树状结构;
结构中可以用"空格"和"Tab"分层.

本文转载自:http://www.cnblogs.com/del/archive/2008/03/12/1102247.html

涂孟超
粉丝 13
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

ClientDataSet探讨(1)-介绍

KeyLife富翁笔记 作者: hongxingdl 标题: ClientDataSet探讨(1)-介绍 关键字: midas 分类: 开发经验 密级: 公开 与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,...

天地弦
2004/08/06
0
0
ClientDataSet 心得

与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。很多数据库应用程序都用了BDE,BDE往往给发布带来很大的不便,因而TClientDataSet最大的特...

osc_cddopi4y
2018/03/04
2
0
Delphi TStream 详细介绍

Delphi TStream 详细介绍 Stream对象,又称流式对象,是TStream、THandleStream、TFileStream、TMemoryStream、TResourceStream和TBlobStream等的统称。它们分别代表了在各种媒介上存储数据的...

osc_1k3ioadv
2019/01/08
2
0
FastScript脚本使用白皮书(Ver1.0)

〖转载〗FastScript脚本使用白皮书(Ver1.0) 1. 可以使用的对象如下: 1.1. 原始类: Tobject, TPersistent ,TList, TStrings, TStringList, TStream, TFileStream, TMemoryStream, TCompon......

vga
2015/01/13
214
0
delphi数据库存储图片

--存 strsql := 'update photo set photo = :photo '; strsql := strsql + ' where sex = ''女'''; with qryforshow do begin Close; SQL.Clear; SQL.Add(strsql); Parameters.ParamByName('......

鹅倌
2016/06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

.NET中小数,浮点数和双精度之间的区别? - Difference between decimal, float and double in .NET?

问题: What is the difference between decimal , float and double in .NET? .NET中的decimal , float和double float什么区别? When would someone use one of these? 有人什么时候会使用......

fyin1314
今天
22
0
如何找出Windows上正在侦听端口的进程? - How can you find out which process is listening on a port on Windows?

问题: 如何找出Windows上正在侦听端口的进程? 解决方案: 参考一: https://stackoom.com/question/CXO/如何找出Windows上正在侦听端口的进程 参考二: https://oldbug.net/q/CXO/How-can...

技术盛宴
今天
10
0
OSChina 周三乱弹 —— 一家动物都快饿成标本了~

@黑觉非常君 :前天晚上9点开始睡觉,睡到昨天上午8点起床,昨天下午2点又睡,睡到下午7点多,晚上10点又困了,又睡,睡到今天上午8点,中途没醒过,怎么这么能睡,是不是快挂了。 能睡不是好...

小小编辑
今天
15
0
神剧推荐全剧最污片段精剪

神剧推荐,全剧最污片段精剪 豆瓣评分最高,脑洞最大,脑回路最曲折,恶搞无数经典,没有一条差评的神剧 整个系列完整版 到这里观看

a57571735
今天
22
0
pingan.

职位诱惑:金融,技术研发,技术攻关,大舞台大作为职位描述:职位诱惑:立志打造一支国内一流实盘量化交易框架开发团队职位描述:职位描述:负责实盘低时延量化交易框架及附属行...

MtrS
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部