Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eigenschaften einer unbekannten Anzahl Klassen speichern (https://www.delphipraxis.net/65065-eigenschaften-einer-unbekannten-anzahl-klassen-speichern.html)

Weazy 11. Mär 2006 20:21


Eigenschaften einer unbekannten Anzahl Klassen speichern
 
Ich arbeite gerade an einem 3d Editor. Darin lassen sich ca 50 verschiedene Grund-Objekte erstellen. Jedes dieser Objekte ist eine eigene Klasse (z.B tCar). Nun möchte ich die erstellten Daten natürlich auch wieder speichern können. Dazu sollten einfach die Eigenschaften aller einzelnen Objekte in eine Datei gespeichert werden und wieder geladen werden können.
Ich habe mir das mit einer art dynamisches Array vorgestellt, doch weiss ich nicht wie ich da die Properties mehrer Klassen hineinschreiben soll.

Danke für eure Hilfe

alzaimar 11. Mär 2006 23:16

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
 
Wenn Du deine Klasse von TPersistent ableitest, werden wohl alle Published Properties ohne weiteres Zutun gespeichert und geladen. Für die Daten, die so nicht serialisiert werden können, definiert man sich eigene Lese- und Schreibroutinen.

Lies mal in der Onlnehilfe.

Weazy 14. Mär 2006 20:54

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
 
Ja, die Klasse ist von tPersistent abgeleitet, doch was meinst du damit das die Properties automatisch gespeichert und geladen werden. Wie schreibe ich am besten eine solche lade und schreib prozedur. Ich hab hier mal alles was gespeichert werden muss. Hab mit überlegt ob vieleicht eine Datenbank geeignet währe...


LSBMP: LoadingScreenBitMap, das bild das beim laden angezeigt wird
Thumb: BitMap, das im menu „neues Spiel“ angezeigt wird
ReqFiles: TStringList aller benötigten Dateien inklusive Hash-Codes zum validieren
Data: Alle benötigten Dateien, sqx oder zip gepackt und verschlüsselt
Datenblock „Materials“: Alle verwendeten Materialien. Unterteilt in
BumpMap
CubeMap
MultiTexture
AlphaMap
Animierte Textur
CG
GLSlang
Datenblock „Events“: Alle Ereignisse in einer eigenen Skriptsprache
Datenblock „Atmosphere“: Alle Informationen zur Umgebung (Wetter, Licht …)
Datenblock „Geometry“: Alle Daten zu 3D-Objekten (keine 3ds Dateien). Unterteilt in
Kollision
Physik
Detail
Terrain
Engine-Integrated
Special
Partikel
Licht
Vegetation
Datenblock „Items“: Alle Objekte, welche der Spieler z.B aufnehmen kann. Unterteilt in
Munition
Rüstung
Gesundheit
Updates (Waffen, Spieler, Fahrzeuge)
Waffen
Fahrzeuge
NPC
KI
Datenblock „Start-Up“: Alle Informationen zum Spielbeginn. Unterteilt in
Spieler Position
Blickrichtung
Startausrüstung
Start-Event
Zeit
Datenblock „Attribute“: Alle Attribute, die an Einträge im Datenblock „Geometry“ angehängt werden können, z.B 3D-Sound, Partikeleffekte, usw.

jfheins 14. Mär 2006 21:28

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
 
Such mal nach Hier im Forum suchenCollections - ich hab da mal ein Tutorial übersetzt ... ;)

SirThornberry 14. Mär 2006 21:32

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
 
wenn all deine klassen einen gemeinsamen Vorfahren haben könntest du dort eine SaveToStream-Methode implementieren und diese in den abgeleiteten Klassen überschreiben.

jfheins 14. Mär 2006 21:37

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
 
Zitat:

Zitat von SirThornberry
wenn all deine klassen einen gemeinsamen Vorfahren haben könntest du dort eine SaveToStream-Methode implementieren und diese in den abgeleiteten Klassen überschreiben.

Oder Collections benutzen (Link: http://www.delphipraxis.net/internal...ht=collections )

Und die ganze Arbeit von Delphi machen lassen anstatt 50 mal SaveToStream zu überschreiben :mrgreen:

(Bei kleineren Sachen mag das überschreiben ja sinnvoll sein, aber bei 50 Klassen ...)

Weazy 14. Mär 2006 22:41

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
 
Super, das tönt genau nach dem was ich suche, werds morgen gleich mal ansehen. Dann kann man so also sozusagen sein eigenes binäres DateiFormat machen????

jfheins 14. Mär 2006 23:00

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
 
Ja, man kann Quasi ein Array von Klassen (eines Vorfahren) speichern - Binär oder Text ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz