AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Eigenschaften einer unbekannten Anzahl Klassen speichern

Eigenschaften einer unbekannten Anzahl Klassen speichern

Ein Thema von Weazy · begonnen am 11. Mär 2006 · letzter Beitrag vom 15. Mär 2006
Antwort Antwort
Benutzerbild von Weazy
Weazy

Registriert seit: 7. Apr 2005
Ort: Bern (Schweiz)
414 Beiträge
 
Delphi 2007 Enterprise
 
#1

Eigenschaften einer unbekannten Anzahl Klassen speichern

  Alt 11. Mär 2006, 21:21
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
Philippe Wechsler
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern

  Alt 12. Mär 2006, 00:16
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Weazy
Weazy

Registriert seit: 7. Apr 2005
Ort: Bern (Schweiz)
414 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern

  Alt 14. Mär 2006, 21:54
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.
Philippe Wechsler
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.510 Beiträge
 
#4

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern

  Alt 14. Mär 2006, 22:28
Such mal nach Hier im Forum suchenCollections - ich hab da mal ein Tutorial übersetzt ...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern

  Alt 14. Mär 2006, 22:32
wenn all deine klassen einen gemeinsamen Vorfahren haben könntest du dort eine SaveToStream-Methode implementieren und diese in den abgeleiteten Klassen überschreiben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.510 Beiträge
 
#6

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern

  Alt 14. Mär 2006, 22:37
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

(Bei kleineren Sachen mag das überschreiben ja sinnvoll sein, aber bei 50 Klassen ...)
  Mit Zitat antworten Zitat
Benutzerbild von Weazy
Weazy

Registriert seit: 7. Apr 2005
Ort: Bern (Schweiz)
414 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern

  Alt 14. Mär 2006, 23:41
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????
Philippe Wechsler
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.510 Beiträge
 
#8

Re: Eigenschaften einer unbekannten Anzahl Klassen speichern

  Alt 15. Mär 2006, 00:00
Ja, man kann Quasi ein Array von Klassen (eines Vorfahren) speichern - Binär oder Text ...
  Mit Zitat antworten Zitat
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 21:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf