![]() |
Klasse oder Record auf sich selbst?
Was ich möchte steht bestimmt schon irgendwo im Forum nur finde ich es nicht. Vielleicht habe ich auch nur einen Denkfehler. Ich möchte ein Record (oder Klasse egal) erzeugen, die wiederum sich als Eigenschaft hat. Ich dachte damit kann ich so eine Art Hierarchie erzeugen, so ähnlich wie es bei XML ist.
Delphi-Quellcode:
Oder macht man das ganz anders?
TGroups = class(TObject)
id: Integer; name: String; main: Integer; fgroup_sorted: Boolean; SubGroups: Array of TGroups; end; |
Re: Klasse oder Record auf sich selbst?
Zitat:
TComponent hat die Properties Components[] und ComponentCount. Damit kann jedes TComponent-Objekt beliebig viele Unterkomponenten enhalten. |
Re: Klasse oder Record auf sich selbst?
Das ist soweit ok, allerdings würde ich mindestens noch einen Destruktor spendieren, der die enthaltenen Objekte freigibt. Und ich würde die Eigenschaften besser schützen, das ist ja gerade der Vorteil einer Klasse gegenüber einem Record.
|
Re: Klasse oder Record auf sich selbst?
Zitat:
kein Problem mit einer Klasse, und gut geeignet für Baumstrukturen. Beispiel:
Delphi-Quellcode:
Hier wird nur das Root-Objekt erzeugt und eine XML-artig strukturierte (Text)Datei übergeben, dann erzeugen sich die Objekte selbst (abhängig von ObjCode) bis die Datei abgearbeitet ist.
type
TCPAObject = class; TCPARootObject = class; TCPADataObject = class ObjCode : TCPACodeStr; Root : TCPARootObject; Parent : TCPADataObject; Next : TCPADataObject; KeyWord : TCPAKeyWordStr; Depth : integer; {$IFDEF DebugWindow} SeqNumber : integer; {$ENDIF} constructor create (pRoot : TCPARootObject; pParent : TCPAObject); procedure GetNextObject (var CO : TCPADataObject); end; TCPAObject = class (TCPADataObject) SubKeyWord : TCPAKeyWordStr; ItemNumber,StringNumber : integer; ActDetail : TCPADataObject; function NextChar : Char; procedure UnGetChar; .... Gruss Reinhard |
Re: Klasse oder Record auf sich selbst?
Danke, das sind ja eine Menge Antworten in der kurzen Zeit :thumb: . Jetzt muss ich mal hier durchspielen, was am besten ist.
|
Re: Klasse oder Record auf sich selbst?
Ich glaube das was du suchst sind Listen:
Delphi-Quellcode:
PMeineListe = ^TMeineListe;
TMeineListe = record Wert1: String; Wert2: Integer; Selbst: PMeineListe; end; |
Re: Klasse oder Record auf sich selbst?
Aber ein Zeiger in der Instanz selber auf die eigene Instanz ist doch total sinnlos. Er wird eher
![]() |
Re: Klasse oder Record auf sich selbst?
Vielleicht liegt das jetzt an meinen Geschmack und die OOP-Fetischisten werden mich jetzt steinigen :wink: , aber ist zur Verwaltung von Bäumen nicht eine Klasse, die einen Zeiger auf den Root kapselt und als Aufbau des Baums Records die aufeinander Zeiger enthalten sinnvoller? Bei der Benutzung von außen (außerhalb dieser Klasse) hat man dann trotzdem nur mit einem schönen Interface der Klasse zu kämpfen, während sie innen organisiert sein kann, wie sie will, und innen erspart man sich den nicht unbeträchlichen Overhead, für jedes Element ein Objekt zu erzeugen.
|
Re: Klasse oder Record auf sich selbst?
Lol .. wer sagt dann das die Instanz auf sich "selbst" zeigt ?! Damit meinte ich nur, dass es vom selben Typ ist! Du könntest genauso Next, Previous hinschreiben .. das ist nukke.
MfG |
Re: Klasse oder Record auf sich selbst?
@Cyf:
Das würde aber nicht dem Ansatz von OOP entsprechen ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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 by Thomas Breitkreuz