Delphi-PRAXiS

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 TreeView: vom markiereten Item *alle* Parents nach "oben" hin anzeigen (https://www.delphipraxis.net/201619-treeview-vom-markiereten-item-%2Aalle%2A-parents-nach-oben-hin-anzeigen.html)

juergen 7. Aug 2019 20:45

TreeView: vom markiereten Item *alle* Parents nach "oben" hin anzeigen
 
Hallo zusammen,

ich suche nach einer Möglichkeit *alle* Parents eines markierten Items auszugeben. Dazu habe ich die ganzen Eigenschaften des TreeView durchsucht und auch hier in der DP einiges gesucht, komme aber leider auf keine Lösung.

Angenommen ich habe 200 Items, verteilt auf 4 Ebenen (Parents). Wenn ich nun ein Item in der 4. Ebene markiere möchte ich alle übergeordneten Parents dazu haben.
Das unmittelbare Parent des Items ist ja kein Problem, aber wie komme ich an die anderen Parents?
Beispiel:

Code:
Projekte
  | Item 1
  | Item 2
  …
   Tätigkeiten
     | Item 22
     | Item 23
     …
        Katalog
          | Item 57
          | Item 58
          …
            Kostengruppe
              | Item 107
              | Item 108   <== markiertes Item
              &#8230;
                Anlage
                  | Item 187
                  | Item 188
                  ...

Benötigtes Ergebnis:
//Projekte/Tätigkeiten/Katalog/Kostengruppe

Ich hoffe ich konnte mich halbwegs verständlich ausdrücken.

Vielen Dank schon mal vorab!

Redeemer 7. Aug 2019 20:54

AW: TreeView: vom markiereten Item *alle* Parents nach "oben" hin anzeigen
 
Einfach mit Parent.Parent. So lange, bis das nil ist.

Code aus einem Programm von mir:
Delphi-Quellcode:
function TFrameUsers.GetChannelPath(Node: TTreeNode): string;
begin
  Result := '';
  repeat
    Result := '/' + Node.Text + Result;
    Node := Node.Parent;
  until Node.Parent = nil;
  Result := '/' + Result;
end;
Das ist für den Fall, dass man das markierte Element drin haben möchte aber das Wurzelelement nicht. Wer etwas anderes will, muss das entsprechend anpassen.

juergen 7. Aug 2019 21:16

AW: TreeView: vom markiereten Item *alle* Parents nach "oben" hin anzeigen
 
Hallo Redeemer,

vielen Dank! :dp:

Genau das habe ich gesucht.
Wie so oft ist es im Nachhinein ganz logisch und "einfach".

Gute N8!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz