求救::Delphi中的treeview控件问题:

cxb_zdl 2001-12-23 02:19:27
各位大侠:我用Treeview来完成一个树式目录表,由于目录表很大,需要将其保存。TreeView控件提供了savetofile和loadfromfile方法,可遗憾的是,我存了以后再调入时原有节点上的图标统统变为第一张的了(即Imageindex:=0,SelectedIndex=0),这说明其他设定的ImageIndex和SelectedIndex都没有存下,这如何解决??
感激不尽!!
...全文
79 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
王集鹄 2002-01-09
  • 打赏
  • 举报
回复
function ComponentToString(Component: TComponent): string;
var
BinStream: TMemoryStream;
StrStream: TStringStream;
s: string;
begin
BinStream := TMemoryStream.Create;
try
StrStream := TStringStream.Create(s);
try
BinStream.WriteComponent(Component);
BinStream.Seek(0, soFromBeginning);
ObjectBinaryToText(BinStream, StrStream);
StrStream.Seek(0, soFromBeginning);
Result := StrStream.DataString;
finally
StrStream.Free;
end;
finally
BinStream.Free
end;
end; { ComponentToString }

function StringToComponent(Value: string; Instance: TComponent): TComponent;
var
StrStream: TStringStream;
BinStream: TMemoryStream;
begin
StrStream := TStringStream.Create(Value);
try
BinStream := TMemoryStream.Create;
try
ObjectTextToBinary(StrStream, BinStream);
BinStream.Seek(0, soFromBeginning);
Result := BinStream.ReadComponent(Instance);
finally
BinStream.Free;
end;
finally
StrStream.Free;
end;
end; { StringToComponent }
王集鹄 2002-01-09
  • 打赏
  • 举报
回复
窗体代码?
cxb_zdl 2002-01-09
  • 打赏
  • 举报
回复
这个问题我已用别的办法解决。
cxb_zdl 2001-12-23
  • 打赏
  • 举报
回复
完了,数据库我是一窍不通。只有这一个办法吗?
虽然我建立的目录树很大(约两千个节点),但Image却很简单,总共只有七个不同的。我的笨办法是每次读入相应的数据文件时重建目录树,但这样需花3~4分钟,我的机器是P4_1.7G的。
我觉得即便是存到数据库中,取出后也得按循环重建,可能并不省时。
lazecat 2001-12-23
  • 打赏
  • 举报
回复
一个笨办法:
存到数据库中。定义两个字段,一个是imageindex,另一个是selectedindex

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧