![]() |
Oberste Node in TreeView finden
Hi,
ich habe mir eine Funktion "GetParentNode" geschrieben, die aus einer Baumstruktur den obersten Parent ermitteln soll. Ich habe zwei Lösungen versucht, aber beide liefern nicht das gewünschte Ergebnis. Ich kann den Fehler leider nicht finden. Hier meine beiden Varianten:
Delphi-Quellcode:
function GetNodeParent(Node: TTreeNode): TTreeNode;
var tempNode: TTreeNode; begin // Übergebene Node als TempNode festlegen tempNode := Node; if tempNode.Parent <> nil then GetNodeParent(tempNode.Parent); result := tempNode; end;
Delphi-Quellcode:
Kann mir jemand helfen?
function GetNodeParent(Node: TTreeNode): TTreeNode;
var tempNode: TTreeNode; begin // Übergebene Node als TempNode festlegen tempNode := Node; while tempNode.Parent <> nil do tempNode := tempNode.Parent; result := tempNode; end; |
Re: Oberste Node in TreeView finden
Was liefern denn beide Funktionen für ein Ergebnis?
|
Re: Oberste Node in TreeView finden
Habe folgende TreeView:
- Fahrzeuge --- Autos --- Motorräder --- Fahrräder - Personal --- Azubis ... Wenn ich mich z.B. in "Fahrräder" befinde, bekomme ich "Fahrräder" zurückgeliefert. Kann den Fehler leider nicht finden. Müsste doch eigentlich korrekt sein, oder? |
Re: Oberste Node in TreeView finden
Beide ungetesetet, aber so würd' ich mal ansetzen...
Delphi-Quellcode:
function GetNodeParent(Node: TTreeNode): TTreeNode;
begin result := Node.TopItem; end;
Delphi-Quellcode:
function GetTreeViewRoot(tv: TTreeView): TTreeNode;
begin result := nil; if tv.Items.Count > 0 then result := tv.Items.Item[0]; end; Gruß -- |
Re: Oberste Node in TreeView finden
Kannst du vielleicht mal im Debugger durchgehen ob die Funktion an sich funktioniert?
@ calculon: So gehts natürlich auch :D |
Re: Oberste Node in TreeView finden
Mhmm, hab´s Problem gefunden. Es hat sich komischerweise eine Funktion eingeschlichen, die die ParentNode in die selektierte Node umbenannt hat *gg*...dann geht´s natürlich nicht.
Danke trotzdem! PS: TopItem ist natürlich praktischer ;-) |
Re: Oberste Node in TreeView finden
:lol:
Sowas ähnliches ist mir auch mal passiert, ich hab mich dumm und dämlich gesucht :? |
Re: Oberste Node in TreeView finden
Tja, man lernt nie aus ;-)
Ohne das hier zu posten hätte ich vermutlich noch Stunden gesucht, aber es ist ja immer so, dass, wenn man hier postet, man die Antwort doch oft schnell selbst findet ;-) |
Re: Oberste Node in TreeView finden
Zitat:
Für den Root bietet sich übrigens noch TreeView1.Items.GetFirstNode an. MfG Benedikt |
Re: Oberste Node in TreeView finden
Delphi-Quellcode:
Nur der Vollständigkeit halber.
Function GetTopItem(ANode : TTreeNode) : TTreeNode;
Begin While ANode.Parent<>Nil do ANode := ANode.Parent; Result := ANode.Parent; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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