【发布时间】:2011-01-18 16:11:01
【问题描述】:
我正在使用 Delphi 帮助文件中 ComponentToString 部分中的示例对对象(TComponent 后代)进行序列化和反序列化。这样我就可以将对象存储在数据库的 VARCHAR 字段中。
当我需要从存储在数据库中的字符串实例化我的类的新实例时,我可以使用CreateFromString(AOwner: TComponent; AData: String) 形式的构造函数来实现吗?还是我必须使用返回组件类实例的非类方法?
如果我可以使用构造函数版本,我如何将 ReadComponent 的返回值“映射”到构造函数正在创建的“自我”?
这是帮助文件中的反序列化示例:
function StringToComponentProc(Value: string): 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(nil);
finally
BinStream.Free;
end;
finally
StrStream.Free;
end;
end;
【问题讨论】:
标签: delphi serialization delphi-2010