Сериализация / Бинарный формат

uses System.Classes;

type
  TData = class(TComponent)
  private
    FText: string;
    FNum: Double;
  published
    //only published properties go into
    //the native (DFM) binary stream
    property Text: string
      read FText write FText;
    property Num: Double
      read FNum write FNum;
  end;

var
  Data: TData;
  Stream: TMemoryStream;
begin
  Data := TData.Create(nil);
  Data.Text := 'Hello';
  Data.Num := 3.14;

  Stream := TMemoryStream.Create;
  Stream.WriteComponent(Data);

  WriteLn('size is ', Stream.Size);
end.