Moin,
interessantes vorhaben, welches ich auch schonmal bei einem anderen persistierungs-system umgesetzt habe. Das sah in etwas so aus:
Delphi-Quellcode:
object DialogBG: TVertexSprite
...
Tex = GuiPackman.interface_01
Animate = False
AniSpeed = 0.999999984306749000
Flags = [vsfAlphaBlend]
end
object yes: TVertexButton
...
OnMouseUp = ScnGame.router.LevelRequester.DiaLevel._OKHandler
ButtonKind = bkRollover
...
end
vom prinzip her richtig lässig, von der handhabung was referenzen zu objekten angeht, die nicht zur hierarchie gehören,und im umgang teilweise trickreich.
Zitat:
Das könnte sogar bei zirkulären Referenzen funktionieren, wenn man das Objekt schon zu beginn des Speichervorgangs als "gespeichert" markiert und ihm dann schon eine ID verpaßt... Oder?
du vergisst hier aber, das es sich um das dumme alte delphi-persistierungs-system handelt, welches nunmal über jeden zweifel erhaben ist und sich nicht modifizieren läßt ;(
Du kannst dir aber, mit ein bischen handarbeit, in DefineProperties eigene properties nach herzenslust erfinden. So zB. auf properties, die den pfad zu deiner referenz beschreiben und diesen dann als
ident speichern. Das geht natürlich nicht automatisch, aber du kannst ein system erfinden, welches dir dir arbeit abnimmt.
so siehts aus!
mâxîmôv.
{KDT}