Si ya tenes componentes, por que no llamar directamente a los métodos WriteComponente y ReadComponent del stream?
Código Delphi
[-]
begin
Conta := TConta.Create;
Conta.Propiedad := Valor;
Conta.OtraPropiedad := OtroValor;
s := TFileStream.Create('c:\conta.dat', fmCreate);
try
s.WriteComponent(Conta);
finally
s.Free;
end;
A mi me parece mucho mas limpio.
Ahora, ayer a partir de la charla, como me quedé algo picado con el tema, busqué un par de referencias y me encontré con la biblioteca
RTTI Library, que creo te será de utilidad, con la ventaja que tus clases no tienen por que ser componentes.
No la he probado, pero tiene buena pinta y ya tiene procedimientos como
SaveObjToIniFile que pueden serte de utilidad.
Hasta luego.