Hallo!
Wie ich Dir schon per ICQ geasgt habe, würde ich das rekursiv machen! Du gibst jedem Objekt eine Methode
SaveToStream(var s : TFilestream). Die sieht dann so aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TaClass.SaveToStream(var s : TFilestream); var i : Integer; begin if s = nil then exit;
s.Write(aVar, sizeOf(aVar)); s.Write(anotherVar, sizeOf(anotherVar));
for i:=0 to High(subObjects) do subObjects[i].SaveToStream(s); end;
procedure TaClass.LoadFromStream(var s : TFilestream); var i : Integer; begin if s = nil then exit;
s.Read(aVar, sizeOf(aVar)); s.Read(anotherVar, sizeOf(anotherVar));
for i:=0 to High(subObjects) do subObjects[i].LoadFromStream(s); end; |
Dadurch, dass jedes Objekt weiß, wievie Daten in Teil 1 stehen (zur Not am Anfang von Teil 1 mitspeichern), weiß es genau, zu welchem Punkt es an die anderen Objekte übergeben muss.
Ist jetzt ohne Delphi zur Hand zu haben geschrieben, aber von der Idee her sollte es gehen.
Grüße
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".