![]() |
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 |
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. |
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. |
Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
Such mal nach
![]() |
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.
|
Re: Eigenschaften einer unbekannten Anzahl Klassen speichern
Zitat:
![]() 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 ...) |
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????
|
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 14:37 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