Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Oberste Node in TreeView finden (https://www.delphipraxis.net/120677-oberste-node-treeview-finden.html)

Yheeky 15. Sep 2008 11:34

Re: Oberste Node in TreeView finden
 
@Benedikt: Cool, danke :-)

Zitat:

Zitat von alzaimar
Delphi-Quellcode:
Function GetTopItem(ANode : TTreeNode) : TTreeNode;
Begin
  While ANode.Parent<>Nil do ANode := ANode.Parent;
  Result := ANode.Parent;
End;
Nur der Vollständigkeit halber.

Enspricht ja im Grunde meiner 2.Variante ;-)

alzaimar 15. Sep 2008 12:14

Re: Oberste Node in TreeView finden
 
Hups.

omata 15. Sep 2008 22:03

Re: Oberste Node in TreeView finden
 
Solange nach oben gegen, bis ANode.Parent = nil ist, was hat Result dann immer für einen Wert?

Und noch was: Wenn der übergebene Node = nil ist -> knallt es!

Also...
Delphi-Quellcode:
function GetTopItem(ANode : TTreeNode) : TTreeNode;
begin
  while assigned(ANode) and assigned(ANode.Parent) do
    ANode := ANode.Parent;
  Result := ANode;
end;
und was spricht gegen TreeView.Items.GetFirstNode in Verbindung mit TreeNode.getNextSibling?

marabu 16. Sep 2008 05:54

Re: Oberste Node in TreeView finden
 
Hallo Thorsten,

mir würde ein einziger vorgezogener Test auf Assigned(node) genügen:

Delphi-Quellcode:
function RootNode(node: TTreeNode): TTreeNode;
begin
  if Assigned(node) then
    while Assigned(node.Parent) do
      node := node.Parent;
  Result := node;
end;
Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:08 Uhr.
Seite 2 von 2     12   

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