Einzelnen Beitrag anzeigen

Traudix

Registriert seit: 6. Mär 2005
Ort: Hannover
16 Beiträge
 
#1

Verständnisproblem Streams

  Alt 26. Jul 2005, 18:50
Hallo!

Mir fällt auf, das eine Klasse, die einen Stream verwendet, nicht vom Programmierer bewußt registriert wird. In Turbo/Borland Pascal war das anders:

Delphi-Quellcode:
Unit StrmObj;

interface

type
 TStreamableObject = object(TObject)
   constructor Init;
   constructor Load(var S: TStream);
   procedure Store(var S: TStream);
 end;

//Dann stand sowas hier da:
RStreamableObject: TStreamRec = (
  ObjType: 100;
  VmtLink: ofs(TypeOf(TStreamableObject)^);
  Load: @TStreamableObject.Load;
  Store: @TStreamableObject.Store
);

//Nun gab es eine Registrier-Prozedur wie folgt

procedure RegisterStrmObj;

//Der Name setzte sich aus dem Wort Register + Name der Unit zusammen

implementation

procedure RegisterStrmObj;
begin
  RegisterType(RStreamableObject);
end;

end.
Nun meine Frage:

Ein(e) Objekt/(Klasse) nuß also für die Verwendung mit Streams registriert werden. Wie und wo erledigt Delphi diese Aufgabe?

Hätte man in Turbo/Borland Pascal auch im Objekt eine Methode definieren können, die das Objekt für den Stream registriert und die dann halt vom Konstruktor mit aufgerufen wird. Wenn nicht, warum nicht? Borland hat ja möglicherweise Gründe, warum die Streamregistrirung in TP/BP so und nicht anders realisiert wurde. Andererseits sehe ich bei den Delphi Streams nirgendwo eine Registrierung, die ich analog vornehmen müßte.

Auf eine Aufklärung freut sich

Traudix
Suche die Herausforderung!
  Mit Zitat antworten Zitat