关于TreeView结构的保存. ( 积分: 50 )

  • 主题发起人 主题发起人 ppqingyu
  • 开始时间 开始时间
P

ppqingyu

Unregistered / Unconfirmed
GUEST, unregistred user!
一个TreeView控件,分两个LEVEL,第二个LEVEL的DATA指向一个类型
TPFilterData = ^TFilterData;
TFilterData = packed record
FilterID: Integer;//序列号
TypeId: Byte; //筛选类型ID
FilterType: TFilterType;
Kill: Boolean; //包含与不包含
Enable: Boolean; //当前类型的当前行是否有效?
Display: string; //显示字符串
Number: TSets;//用于比较的母数据
Amount: TSets;//约定数量
end;

var
i,j,k: integer;
CatNode : TTreeNode; //先建立一个TREEVIEW使用的子对象
pF: TPFilterData;
begin
new(pF);
with TPFilterData(pf)^ do
begin
FilterID := AryFilterID;
.....
....
end;
CatNode := FilterCheckTree.Items.AddChild(FilterCheckTree.Selected,pF.Display);
//为节点加ID
CatNode.Data := pF;
end;

我最想的把整个树型结构以及其指向的数据同时保存在类型文件,如果不行,退而其次,保存TPFilterData,如果再不行,那就保存TFilterData,当然,前提是可以还原这个树型结构.请高手指点一下.TFilterData是一定行的,只是要判断一下LEVEL,同是期FILTERTYPE而定在哪个节点下.所以我想一次性保存整个树结构,那还原更方便
 
TreeView1.SaveToFile();

TreeView1.LoadFromFile();
 
节点和节点的数据分开保存吧.
 
1. 直接赋值就行了
2. 保存树建议用XML

------------------------------------------------------
http://www.waibaoinfo.com 外包信息网
 
TO:rtl
改行做业务了,到处看到你广告.
 
TPFilterData = ^TFilterData;
TFilterData = packed record
FilterID: Integer;//序列号
TypeId: Byte; //筛选类型ID
//FilterType: TFilterType;
Kill: Boolean; //包含与不包含
Enable: Boolean; //当前类型的当前行是否有效?
Display: string[200]; //显示字符串
Number: TSets;//用于比较的母数据
Amount: TSets;//约定数量
end;
我想把TPFilterData指向的内存值赋给出TFilterData的变量,或者直接把TFilterData的变量直接赋给指针.不是一个一个属性的赋值哦
 
var
aaa:TFilterData;
Paaa:TPFilterData ;
begin
New(Paaa);
MoveMemory(paaa,@aaa,SizeOf(TFilterData));
//记得释放PAAA
end;
 
那反方向赋值呢?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
730
SUNSTONE的Delphi笔记
S
S
回复
0
查看
738
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部