Forum: Object-Pascal / Delphi-Language
Delphi
by Geri,
15. Jan 2008
Hallo Hagen
Vien Dank für Deine ausführliche Beschreibung!! Du hast recht, mit den Internals von Klassen habe ich mich noch nicht vertraut gemacht.
Deine Lösung kann ich sehr gut nachvollziehen. Die Geschwindigkeit ist bestimmt deutlich besser als wenn man mit bei jedem Objekt mit Strings operieren muss.
Nachdem du den Lösungsweg so ausführlich bechrieben hast, für andere hier im Forum,...
Forum: Object-Pascal / Delphi-Language
Delphi
by Geri,
15. Jan 2008
Hallo Hagen
Schön, wieder mal Deine wertvolle Meinung zu lesen. Ich hoffe, es geht dir gut!
Bzgl. Deiner Lösung:
1.) Ich möchte ja keine visuellen Komponenten speichern. Deshalb sehe ich auch keine Ineffizienzen oder unnötige Speicherbelastung, wenn ich hergehe und jeder Objektklasse eine eindeutige ID zu deren Identfikation zuweise und diese direkt in der store-Routine "mitspeichere".
...
Forum: Object-Pascal / Delphi-Language
Delphi
by Geri,
14. Jan 2008
Hallo Sirius
Vielen Dank für die Infos.
Ich meine schon, dass ich eine Möglichkeit zur Identfikation benötige. Die Daten stecken in einem File. Der Ladevorgang kann nach erneutem Aufruf des Programmes stattfinden.
Meine aktuelle Lösung sieht so aus, dass ich
Type TMyClassType = (
Forum: Object-Pascal / Delphi-Language
Delphi
by Geri,
14. Jan 2008
Hallo Sirius
Vielen Dank nochmals. Die Idee mit dem Generieren eines Keys ist mir auch schon in den Sinn gekommen. Die Implementation in der Basisklasse aus dem Klassenname wäre bestimmt sinnvoll. Damit liessen sich auch Klassen, welche nicht voneinander abgeleitet sind gut implementieren.
Vielleicht sollte ich auch mal einen Zeitmessung vornehmen. Vielleicht ist der Performaceverlust...
Forum: Object-Pascal / Delphi-Language
Delphi
by Geri,
14. Jan 2008
Hallo zusammen
Ich möchte verschiedene Objekte in ein Stream speichern. Zu diesem Zweck schreibe ich den Klassenstyp als Zusatzinformation in den Stream. Beim Auslesen wird der Klassentyp in einer case ermittelt und die enstpechenden Load-Routine aufgerufen. Das Ganze sieht als Beispiel ungefähr so aus:
Procedure TPoint.Store(s:TStream);
var ct:TClass;
Begin
ct:=self.ClassType;
...