AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Referzen in ein Stream speichern

Ein Thema von Geri · begonnen am 14. Sep 2006 · letzter Beitrag vom 15. Sep 2006
Antwort Antwort
Geri

Registriert seit: 23. Nov 2004
Ort: Feldkirch
47 Beiträge
 
Delphi 2005 Personal
 
#1

Re: Referzen in ein Stream speichern

  Alt 14. Sep 2006, 22:17
Hallo Hagen

Vielen Dank für Dein tolles (kurzes und sehr gut nachvollziehbares) Beispiel und die detaillierte Beschreibung!! Super!

Ich denke, nun ist mir klar, wie ich eine TListe speicher. Wie schreibe ich aber das Objekt Kante in ein Stream. Sind ja nur die Pointer auf die Punkte gespeichert, die in einer anderen Liste gespeichert sind.
Delphi-Quellcode:
TGraph = class
     PunkteListe:TList;
     KantenList:TList;
     constructor Create();
    end;

Procedure TPoint.Store(s:TStream)
Begin
  S.Write(x, SizeOf(x));
  S.Write(y, SizeOf(y));
End;

Procedure TPoint.Load(s:TStream)
Begin
  S.Read(x, SizeOf(x));
  S.Read(y, SizeOf(y));
End;

Procedure TPoint.Load(s:TStream)
Begin
  S.Read(x, SizeOf(x));
  S.Read(y, SizeOf(y));
End;

Procedure TKante.Store(s:TStream)
Begin
  S.Write( ...schreibe Referenz von P1 in das Stream???
  S.Write( ...schreibe Referenz von P2 in das Stream???
End;

Procedure TKante.Store(s:TStream)
Begin
  S.Read( ...lies Referenz von P1 in das Stream???
  S.Read( ...lies Referenz von P2 in das Stream???
End;

constructor TGraph.Create();
var P1,P2:TPoint;
    K:TKante;
Begin
   PunkteListe:=TList.Create;
    
   // erzeuge 10 zufällige Punkte
   for i:=0 TO 9 Do
   Begin
      P:=TPoint.create(Random(100),Random(100));
      PunkteListe.Add(p);
   End;
    
   // Erzeuge 4 zufällige Kanten
   For j:=0 TO 4 Do
   Begin
      Kantenliste:=TKante.Create(l[Random(9)],L[Random(9));
   End;
End;
Wenn ich Deinen Code compiliere, dann erhalte ich ein paar Meldungen
Delphi-Quellcode:
...
  Instance := (GetClass(ReadClassName) as TMyBaseClass).Create; //[Fehler] uHagen.pas(50): E2015 Operator ist auf diesen Operandentyp nicht anwendbar



...
      with List[I] as TMyBaseClass do // Operator nicht anwendbar

      SaveToStream(Stream); // wennn ich richtig verstanden habe, dann werden hier z.B. die Koordinaten für einen Punkt gespeichert. Wie speichere ich aber bitte die Kantenliste?
Vielen Dank nochmals und beste Grüsse

Geri
Gerhard
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz