Ja proponuję szybkie, ale kompletnie nieprofesjonalne rozwiązanie:
procedure TForm.ZapiszKomponent(what:tcomponent;name:string);
var
F: TFileStream;
begin
F := TFileStream.Create(extractfilepath(application.ExeName)+'\files\'+name+'.dat', fmCreate or fmShareCompat);
try
F.WriteComponent(what);
finally
F.Free;
end;
end;
procedure TForm.WczytajKomponent(what:tcomponent;name:string);
var
F: TFileStream;
begin
if not fileexists(extractfilepath(application.ExeName)+'\files\'+name+'.dat') then exit;
F := TFileStream.Create(extractfilepath(application.ExeName)+'\files\'+name+'.dat', fmOpenRead or fmShareDenyWrite);
try
F.ReadComponent(what);
finally
F.Free;
end;
end;
Działanie powyższego kodu jest proste. Kiedy chcemy zapisać dany komponent (niestety wszystkie jego właściwości), to wykonujemy procedurę 'ZapiszKomponent' tak:
ZapiszKomponent(komponent,'nazwa');
Objekt "komponent" zostanie zapisany do pliku "nazwa.dat" w folderze "/files". Wczytywanie komponentu jest zupełnie odwrotne. W parametrach podajemy nazwę (taka jak przy zapisywaniu) oraz komponent, który ma zostać wczytany (musi już istnieć).
Myślę, że to pomoże :)