AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

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 15. Sep 2006, 12:38
Hallo Hagen

Du bist wirklich spitze!! Vielen Dank! Ich glaube, nun kratze ich doch nochmal die Kurve.

Der code liess sich mit zwei Ausnahmen compilieren einmal ein Tippfehler und einmal die Meldung
[Fehler] uHagen2.pas(70): E2015 Operator ist auf diesen Operandentyp nicht anwendbar
im folgenden COde bei "if not (AClasses[I] is TBaseClass) then"

Delphi-Quellcode:

procedure RegisterBaseClasses(const AClasses: array of TBaseClass);
var
  I: Integer;
begin
  Assert(FClassList <> nil);

  for I := Low(AClasses) to High(AClasses) do
   if not (AClasses[I] is TBaseClass) then
      raise Exception.Create('ungültige Klasse in RegisterBaseClasses')
    else
      if GetBaseClass(AClasses[I].ClassName) <> nil then
        raise Exception.CreateFmt('eine Klasse mit Namen "%s" ist schon registriert', [AClasses[I].ClassName])
      else
        FClassList.Add(AClasses[I]);
end;
Deshalb habe ich den Teil ausser "FClassList.Add(AClasses[I]);" ausgeklammert

Dann habe ich eine Beispiel geschrieben. Es werden 10 Punkte und fünf Kanten erzeugt. Das Schreiben und das Lesen der Punkte klappt. Nur sind in der Liste nach dem Auslen 15 Punkte drin. Die restlichen 5 Punkte haben deshalb nicht definierte Werte. Hmmm??

Die Katenliste ist nach dem Laden auch leer. KantenListe.count = 0. Hast du bitte vielleicht noch eine Idee an was es liegen könnte.

Delphi-Quellcode:
procedure TForm6.Button1Click(Sender: TObject);
var i:Byte;
    P:TPoint;
    K:TKante;
Begin
   PunkteListe:=TList.Create;
   KantenListe:=TList.Create;

   // erzeuge 10 zufällige Punkte
   for i:=0 TO 9 Do
   Begin
      P:=TPoint.create();
      P.X:=i;
      P.y:=i;
      memo1.lines.Add('Init Punkt ' + IntToStr(i) + ' ' + IntToStr(P.x) + ' ' + IntToStr(P.y));
      PunkteListe.Add(p);
   End;

   // Erzeuge 4 zufällige Kanten
   For i:=0 TO 4 Do
   Begin
      K:=TKante.Create();
      K.Start:=PunkteListe[Random(9)];
      K.Stop:=PunkteListe[Random(9)];
      memo1.lines.Add('Init Kante ' + IntToStr(i));
      KantenListe.Add(k);
   End;

   SaveToFile('C:\test.txt'); // schreibe Punkte und Katen in ein File
   PunkteListe.Clear;
   KantenListe.Clear;

   LoadFromFile('C:\test.txt'); // lade Punkte und Katen aus einem File
//------------ zeige Punkte --------------------
   For i:=0 TO PunkteListe.count-1 Do
   Begin
      P:=PunkteListe[i];
      memo1.lines.Add('Gelesen Punkt ' + IntToStr(i) + ' ' + IntToStr(P.x) + ' ' + IntToStr(P.y));
   end;

//------------ zeige Kanten --------------------
   For i:=0 TO KantenListe.count-1 Do
   Begin
      K:=KantenListe[i];
      memo1.lines.Add('Gelesen Kante ' + IntToStr(i) + ' ' + IntToStr(K.Start.x) + ' ' + IntToStr(K.Start.y));

  end;

end;
Beste Grüsse und vielen Dank

Geri
PS: Könntest doch mal vieleicht ein Buch über das Thema schreiben... Reich wird man davon nicht, aber es macht auch Spass. Wenn Deine Beiträge alle so lange sind, dann liegt der Inhalt ja schon vor
Gerhard
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:17 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