Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TTreeView.Items -> Neue Variable
apnm - Mi 30.10.02 20:13
Titel: TTreeView.Items -> Neue Variable
Hallo
Ich habe folgendes Prob:
Die Klasse TTreeView hat ja als UnterKlasse Die lasse TTreeNode, die Items heißt.
Also TreeView1.Items
Nun will ich aber, dass die Klasse TTreeNode eine extra Variable bekommt, zB ein Var.. vom Typ String (sInfo).
Damit es so aussieht
TreeView1.Items.Info
Wie mache ich das, damit ich eine solche Klasse bekomm
Danke im Voraus
Horst - Mi 30.10.02 20:20
dass kommt auf den Klassendesign an. Am besten legst du eine neue Klasse an die du vom Treeview ableitest und dann fügst du halt
noch eine Variable info dazu. Habe für diesen Fall zwar noch nicht ausprobiert, muss aber gehen. Am besten experimentierst du einfach mal. Das sähe dann z.B. so aus: :D
TTreeViewNeu = class(TTreeView)
private
{ Private-Deklarationen }
info : string;
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
published
{ Published-Deklarationen }
end;
:shock:
Gruß
Horst
apnm - Mi 30.10.02 20:28
Titel: .
OK
Das ist klar, nun wäre die VAriable Info aber direkt unter TreeViewNeu
Sie soll aber unter TreeViewNeu.Items.Info stehen
Das kann ich nicht umsetzten
Wie macht man sowas?
aogwaba - Mi 30.10.02 21:13
Hi!
deklariere eine neue Klasse, abgeleitet von TTreenode:
TTreenodeNeu = class(TTreenode)
public
info : string;
end;
var myTreenodeNeu:TTreeNodeNeu;
zum createn dann:
mytreenodeneu:=ttreenodeneu.create(TreeView1.items);
mytreenodeneu.info:='info';
Du könntest aber auch das DATA-Property der Node benutzen.
cu
waba
apnm - Mi 30.10.02 21:25
Titel: .
ne, das verstehe ich net so ganz, ich habe es mir so gedacht:
type
TItemsFiles = class(TTreeNode)
private
public
Info : String;
end;
type
TTreeViewFiles = class(TTreeView)
private
public
property Items ???????: TItemsFiles; override;
end;
So stell ich mir das vor
aogwaba - Mi 30.10.02 21:51
Hi!
Wenn du deine TTreenodeneu von TTreenode ableitest, werden alle Vorgängermethoden/Eigenschaften mitvererbt. Sämtliche Functionen, welche eine TTreeview-Instanz erwarten und eine TTreeViewNeu-Instanz serviert bekommen, funktionieren.
Den TTreeview.items, brauchst du deshalb nicht zu manipulieren.
Wenns nicht verständlich war bitte nachfragen!
cu
waba
apnm - Mi 30.10.02 21:57
Titel: .
Ne, nicht so wirklich, hast du mein beispiel weiter oben gesehene
Bei TTreeView wird Items als porperyt gesetzt ( genauen werte kenne ich leider net)
Da muss ich doch nun sagfen, dass TTreeViewNEU auch die eigenschaft bekommt
also property Items ???:TTreeNodeNeu
weil ich ja die neue klasse nehemn will, wo meine variable drinne ist.
Aber das alte Items soll ja ducrh das neue Items ersetzt werden, sonst habe ich ha unter TTreeViewNEU zweimal die eigenschaft Items: einmal mit TTreeNode und einmal mit TTreeNodeNeu, deswegen solltze man sie überschreiben
trotrzdem bleinbt doch alle wie gehabt, denn TTreeNodeNEu ist ja von TTreeNode
Oder? ;)
aogwaba - Mi 30.10.02 22:29
Hi!
Die Eigenschaft Items von TTreeview ist ein 'Container' für TTreenode- Objekte. Da dein TTreenodeNeu von TTreenode abgeleitet wird, ist es defacto ein TTreenode-Object, kann also statt dessen eingesetzt werden.
Zitat: |
trotrzdem bleinbt doch alle wie gehabt, denn TTreeNodeNEu ist ja von TTreeNode
|
Genau,
cu
waba
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!