zapis/odczyt wlasnego obiektu do/z pliku

0

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...

0

TStream.WriteComponent + F1 (przykład jest)

0

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!!!

[email protected]

0

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.

0

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

0

Swoje na pewno też możesz zapisać. Za to nie jestem pewien czy komponenty, które są polami klasy też zostaną zapisane. Musisz sprawdzić.

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1