Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: An Speicher eine Komponente rankommen

  Alt 12. Aug 2005, 20:25
Das geht recht einfach. Aber die Komponente wirst du trotzdem nicht einfach in einen Stream schreiben können, denn wenn man einen Zeiger auflöst (Zugriff auf "Speicher" der Komponente) bekommt man tausende neue Zeiger.

Delphi-Quellcode:
type
  TMyComp = class(TObject)
  private
    Next: TMyComp;
    List: TList;
  public
    constructor Create;
    destructor Destroy; override;
  end;

var
  Buf: array of Byte;
  Comp: TMyComp;
begin
  Comp := TMyComp.Create;
  try
    Stream.Write(Pointer(Comp)^, Comp.InstanceSize);
  finally
    Comp.Free;
  end;
end;
Aber wie schon geschrieben, dass wird dir nichts bringen, denn damit würdest du in diesem Fall 12 Bytes schreiben (4 für den VMT Zeiger, 4 für "Next" und 4 für "List". Wenn du dass dann wieder lädst, hast du 3 Zeiger die ins Nirwana zeigen.
  Mit Zitat antworten Zitat