TreeView保存问题.(100分)

  • 主题发起人 主题发起人 GanQuan
  • 开始时间 开始时间
G

GanQuan

Unregistered / Unconfirmed
GUEST, unregistred user!
TreeView中各个Node以不同的图标标识,
执行TreeView.SaveToFile('***.cfg'); 之后,以后再Load时TreeView.LoadFromFile,
各个Node的图标与以前不同了,ImageIndex都是0.
请问有没有简单的方法使Save,Load之后,图标保持不变.
 
建立一个临时TreeView(TempView)
TempView的节点标题为原来的“节点标题”+';'+IntToStr(ImageIndex)
保存TempView
Load的时候反着做就可以了

 
To driver:
>>建立一个临时TreeView(TempView)
>>TempView的节点标题为原来的“节点标题”+';'+IntToStr(ImageIndex)
>>保存TempView
这需要遍历原来的TreeView来给TempView复值,TreeView层次很多,
有没有更简单的?


 
把imageindex也记下来放在data里,load以后赋一下值是肯定行的不知有没有更好的办法
 
简单办法没有. 需要模仿SaveToFile做一个新方法
 
不知道用这个方法 如何:
F:=TFileStream.Create(YourFileName,fmopenWrite or fmCreate);
F.WriteComponent(YourTreeview);
F.Free;
读出
F:=TFileStream.Create(YourFileName,fmopenRead);
F.ReadComponent(YourTreeView);
当然,你的ImageList 还是要保存的。
 
每个节点即TTreeNode属性都有一个Data数据成员指针.可以通过这个指针来保存一些东西
(保存的数据未必必须得是指针型的,只要将其转换为Pointer类型的即可).
 
这里我也想问个简单的问题,如何把在treeview里面动态添加的类别写到数据库里面啊
 
请你将TREEVIEW节点要实现的功能来信告诉我,我可以帮助你解决,我已做过这方面的程序。
因为实现这个功能有好多种,不同的功能有不同的实现。不知你属于哪种。
我好按你的要求给你不同的代码。

如:你的节点是什么内容,你想实现的功能是什么。
你的图标是固定的还是随节点内容改变而变化。
是不是像资源管理器一样,文件夹是一个图标,文件又是一个图标?


 
让TreeView的Node 的 data 属性指向一个记录指针,该记录的某个字段定义为整数类型
记录下ImageIndex不就得了嘛
 
谢谢大家回答.
我的TreeView层次较多,Node的图标又随着类别的变化而改变,所以不想自己写代码
遍历TreeView.想找一个简单的方法. Data是可以用来存储Node的ImageIndex,但这也需
要遍历TreeView来负值.
GGCAT的方法最好,最简单.
 
多人接受答案了。
 
后退
顶部