AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Querverweise zwischen TCollectionItems? (dpCollection)
Thema durchsuchen
Ansicht
Themen-Optionen

Querverweise zwischen TCollectionItems? (dpCollection)

Ein Thema von Phil73 · begonnen am 4. Apr 2006 · letzter Beitrag vom 21. Apr 2006
 
Phil73

Registriert seit: 1. Feb 2005
7 Beiträge
 
Delphi 7 Professional
 
#4

Re: Querverweise zwischen TCollectionItems? (dpCollection)

  Alt 5. Apr 2006, 12:23
Aha, der Autor persönlich! Vielen Dank für die Antwort!

Zitat von Jens Schumann:
Hallo,
so wie Du es vor hast wird es nicht funktionieren. Es sieht so aus, als ob Du nur eine Referenz auf das andere TCollectionItem speicherst.
Genau. Das ist auch so gewollt, denn es soll bei dem Programm von verschiedenen Stellen aus dasselbe (nicht nur das gleiche ) Object manipuliert werden.

Zitat:
Wenn Du das speicherst wird die wahrscheinlich nur die Referenz gespeichert. Wenn die Collection wieder geladen wird, wird wahrscheinlich auch nur die Referenz wiederhergestellt. Was jetzt aber im Arbeitsspeicher an der Stelle liegt ist völlig ungewiss.
Na ja, meine Experimente haben ergeben, daß der Speicheralgorithmus über die Referenz auf das dadurch referenzierte Object noch mal zugreift und dessen publishe properties noch ein weiteres mal speichert.

Zitat:
Du musst eine Kopie des TCollectionItem speichern. Dann klappt es.
Das hilft mir leider nicht, s.o.

Überlegung: Wenn man so was programmieren wollte müßte man doch eigentlich folgendes machen:
1) Alle Objekte und deren published properties wie gehabt speichern, mit Ausnahme der properties, die Referenzen auf Objekte darstellen. Jedes Objekt erhält eine eindeutige (innerhalb der gesamten Datei eindeutige) ID.
2) Wenn der Speicheralgorithmus auf eine Referenz trifft:
a) Prüfen, ob das Referenzierte Objekt schon gespeichert wurde.
JA-> dessen ID als Referenz Speichern
NEIN -> zunächst das Objekt speichern, dann wie bei JA.

(Ladevorgang entsprechend)

usw. Das sollte prinzipiell funktionieren, außer bei zirkulären Referenzen.
Aber die Umsetzung dürfte nicht so einfach sein, oder?

Grüße,

Phil73
  Mit Zitat antworten Zitat
 


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 11:27 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