mam obiekt skladajacy sie z obiektu dzieciczacego z TShape oraz z kilku innych zmiennych. Jak zapisac parametry tego obiektu do pliku? jak pozniej je odczytac? jesli cos podobnego tu juz bylo to prosze o podpowiedz gdzie ale i tak prawdopodobnie to juz czytalem... pozdrawiam i prosze o szybka pomoc...
TStream.WriteComponent + F1 (przykład jest)
no i jest... znaczy to chyba bedzie to... niestety w mojej wersji (delphi 4) nie ma przykladu... przynajmniej przy tym temacie w helpie... jesli u Ciebie jest to bardzo prosilbym na maila lub w jakikolwiek sposob... dzieki!!!
This example shows how to use the built-in VCL component streaming support to convert any component into a string and convert that string back into a component.
function ComponentToString(Component: TComponent): string;
var
BinStream:TMemoryStream;
StrStream: TStringStream;
s: string;
begin
BinStream := TMemoryStream.Create;
try
StrStream := TStringStream.Create(s);
try
BinStream.WriteComponent(Component);
BinStream.Seek(0, soFromBeginning);
ObjectBinaryToText(BinStream, StrStream);
StrStream.Seek(0, soFromBeginning);
Result:= StrStream.DataString;
finally
StrStream.Free;
end;
finally
BinStream.Free
end;
end;
function StringToComponent(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;
Copyright (c) 2001 Borland Software Corporation.
aha... no dobra... jeszcze niewiele z tego rozumiem... znaczy sie moge zapisac komponent "zarejestrowany" tylko? mam klase w sklad ktorej wchodzi pochodna od TShape'a i jakies zmienne... w programie dynamicznie tworze obiekty tej klasy. Czy musze zapisac te klase jako komponent? co mam zrobic zeby zapisac i odczytac pozniej wszystkie obiekty tej klasy (sa w array'u)... sorry za takie pytania ale jestem poczatkujacy...
dzieki za wyrozumialosc i pomoc...
bede wdzieczny...
pozdrawiam
Swoje na pewno też możesz zapisać. Za to nie jestem pewien czy komponenty, które są polami klasy też zostaną zapisane. Musisz sprawdzić.
ygh... jakos mi nie idzie... chyba jednak nie moge obiektow swojej klasy zapisywac (za pomoca WriteComponent) bo nie jest to TComponent a musi byc : WriteComponent(Instance: TComponent);
wiec co mam zrobic??? na okolo? zapisywac wszystko do stringa i potem do pliku? czy musze stworzyc komponent?
dzieki za cierpliwosc...
pozdrawiam