Я сериализую и десериализую объект (потомок TComponent), используя пример из раздела ComponentToString в файле справки Delphi. Это сделано для того, чтобы я мог сохранить объект в поле 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;