当前位置:编程学习 > Delphi >>

哪位大虾来教教我delphi怎么保存组件属性啊?

哪位大虾来教教我怎么保存组件属性啊?
就是保存到文件里,需要的时候恢复出来!帮帮忙啊!或者叫着动态保存?
追问:我问了很多人,都说用流来保存,所以你说的很对,不过我是菜鸟不是很懂,可以加我QQ吗,谢谢啦!393206337,,
答案:

这个叫做对象的持久化,序列化,串行化,都是一个意思,翻译不同而已

下面2个函数,将对象以流的形式保存到string里或把string转换为对象。可以将转换后的string写入文件,需要时再读出来。

类似的例子很多,搜一下”Delphi 持久化”或”Delphi 序列化”

使用的前
注册下
   RegisterClasses

functionComponentToStr(AComponent: TComponent): string;
var
BinStream: TMemoryStream;
StrStream: TStringStream;
s: string;
begin
BinStream := TMemoryStream.Create;
try
    StrStream := TStringStream.Create(s);
    try
      BinStream.WriteComponent(AComponent);
      BinStream.Seek(0, soFromBeginning);
      ObjectBinaryToText(BinStream, StrStream);
      StrStream.Seek(0, soFromBeginning);
      Result := StrStream.DataString;
    finally
      StrStream.Free;
    end;
finally
    BinStream.Free
end;
end;

function StrToComponent(constValue: 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;



 

使用ini配置文件,将属性都放进去,每次初始化的时候读取文件内容!

上一个:DELPHI改变其他应用程序中的控件的文本内容
下一个:delphi 使用ics控件如何解压网页返回的gzip数据流!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,