Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8

Re: Speichern von Baumstrukturen

  Alt 29. Sep 2003, 21:18
Dies musst du entscheiden. Grundsätzlich würde nur das Delphi Streaming System benutzt, also nur die wichtigsten Teile aus Classes.pas. Man könnte es auch selber coden, mit hilfe von TypInfo.pas, und hätte somit einen erhöhten Overhead der Speichrung von Daten. Auf alle Fälle, ob mit oder ohne VCL, ist dieser Weg viel effizienter als die XML-Nodes (die absoluter Shit sind).
Bedenke auch das der Weg über die VCL, wesentlich größerer Streams erzeugt. D.h. solche Nodes im VCL like Stream benötigen mehr Speicher, da sie ja auch den Property Typ + Name + Wert speichern.
Allerdings, gerade bei komplexeren Datenstrukturen haben sich diese Nodes enorm bewährt. Nur an Hand deren Deklaration können sie in Streams gespeichert werden. Dies ist dann auch noch Typ und Werte sicher. Neue "Versionen" der gleichen Nodes, durch Erweiterungen mit neuen Eigenschaften machen schon gespeicherte Nodes nicht inkompatibel. D.h. es ist während der Entwicklungszeit der Nodes immer möglich sie zu erweitern (so lange man keine einmal deklarierten Properties löscht).

Der Weg über feste TNodes die per Zeiger ihre Daten enthalten ist unelegant und inflexibel. Besser ist es dann gleich die TNode als Nachfahre als erweiterbares Datenobject zu betrachten.

Ich will noch erwähnen das zu meinen TNodes noch Controls existieren die z.B. den TTreeView ersetzen. Da jedes Delphi TObject auch Messages als dynamische Methoden empfangen kann, habe ich meine TNodes damit erweitert. Dies bedeutet das ein Nodebaum der einen TNodeGrid zugewiesen wurde, selber für dessen Darstellung, Bedienung und Datenhaltung verantwortlich ist. Durch üebrschreiben verschiedener Messages in den eigenen TNodes kann man also deren Darstellung und Ineraktion im GUI Control bestimmen.

Auf www.dinosGmbh.de findest du ein paar ScreenShots meiner kommerziellen Programme die fast alle TNodes benutzen.

Gruß Hagen
  Mit Zitat antworten Zitat