Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Node in TreeView markieren
merlin83 - Do 16.09.04 21:39
Titel: Node in TreeView markieren
Schönen guten Abend!
Ich verwende ein TreeView und erstelle dort eine Baumstruktur (was auch sonst). Nun möchte ich, dass ein neues Item markiert wird, nachdem es erstellt wurde. Ich weiß von dem Element nur den Namen (Text), der eindeutig ist, daran kann das Element also identifiziert werden. Ich will aber nicht extra den ganzen Baum durchgehen, jedes Item auf seinen Namen überprüfen, Index auslesen und dann markieren, das wäre zu umständlich. Gibt es eine andere Möglichkeit?
Vielen Dank im Voraus!
GSE - Do 16.09.04 21:40
wie sonst, wenn du nur die bezeichnung hast?
alternativ HashedStringlIst mit den Bezeichnung an der Position des Indexes und dann mit IndexOf (macht aber ja auch nichts anderes als zu suchen)
und warum ist das kompliziert?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| function FindNodeByText(NodeText: string; StartNode: TTreeNode): TTreeNode; var i: integer; wasfound: boolean; begin wasfound := false; NodeText := UpperCase(NodeText); if NodeText <> '' then while StartNode <> nil do begin if Pos(NodeText, UpperCase(StartNode.Text)) <> 0 then begin result := StartNode; wasfound := true; break; end; StartNode := StartNode.GetNext; end; if not wasfound then result := nil; end; |
mfg
GSE
merlin83 - Do 16.09.04 21:43
Ja, das habe ich gefragt. Die Antwort hat nicht wirklich geholfen...
Kann doch auch sein, dass es ne Methode gibt, mit der man die Items direkt ansprechen kann.
GSE - Do 16.09.04 21:45
TreeView.Items ?
s. Code in meinem ersten Posting...
mfg
GSE
merlin83 - Do 16.09.04 21:48
Gut, das ist zwar keine Ideallösung, aber das passt schon. Vielen Dank!
iKilledKenny - Fr 17.09.04 10:40
Zitat: |
Nun möchte ich, dass ein neues Item markiert wird, nachdem es erstellt wurde.
|
wenn du ein item gerade erstellt hast, dann hast du doch den knoten. dann einfach
Delphi-Quelltext
1:
| Knoten.Selected := True; |
und schon ist der knoten im baum ausgewählt.
merlin83 - Fr 17.09.04 11:18
Nein, habe ich eben nicht, weil ich es nur anhand seines Namens erstellt habe. Aber mit der Funktion von GSE funktionierts auch.
iKilledKenny - Fr 17.09.04 13:09
also wenn ich
Delphi-Quelltext
1:
| Knoten := Tree.Items.Add (nil, 'test'); |
mache, dann habe ich einen knoten...
vielleicht solltest du den knoten einfach dort schon selektieren, wo du ihn erstellst.
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!