![]() |
TreeView nach Namen und Vorkommen ordnen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo DP!
Ich habe auf ![]() ![]() ![]() Meine Absicht ist es, die Knoten eines Levels zu zählen und diese dann in einen "Sammelknoten" zu verschieben. Beim Aufklappen des Sammelknotens werden die Kind-Knoten nummeriert. So sieht das ganze gelöst aus: ![]() Das wäre ein deutliches Übersichts-Plus im Gegensatz zu endlos vielen Knoten, die sich einfach nur wiederholen. Lösen wollte ich das mit einer Stringliste, welche sich alle Knoten mit entsprechende Level merkt. Am Ende wird die Liste dann sortiert und das Treeview neu geschrieben. Allerdings scheint mir das ein recht komplizierter Lösungsansatz zu sein.
Delphi-Quellcode:
Gibt es keine einfacheren Zähl-Funktionen bei einem TreeView? So etwas wie count childnodes einer Ausgangsnode?
procedure TFrmMain.Button1Click(Sender: TObject);
var node: TTreeNode; merker_text:String; merker_level:integer; sl:TStringList; begin node := TreeView.Items[0]; TRY while Assigned( node ) do begin //Name und Level merken sl := TStringList.Create; merker_text := node.Text; merker_level := node.Level; //Stringlist schreiben sl.Add(merker_text+','+IntToStr(merker_level)); node := node.getNextSibling; end; showmessage(sl.Text); FINALLY sl.Free; END; End; Gruß, Ajin |
AW: TreeView nach Namen und Vorkommen ordnen
Schätze, Du mußt die Liste zweimal durchlaufen und eine eigene Struktur füllen.
Beim ersten Mal merkst Du Dir die unique Bezeichnungen als Überschriften (Elternknoten). Beim zweiten Mal sammelst Du unterhalb der Überschriften alle jeweils gleichlautenden Kinder. Danach baust Du anhand der Struktur den Baum. |
AW: TreeView nach Namen und Vorkommen ordnen
Ich würde das ganze gleich beim einlesen/aufbauen des Tree's machen.
Ansonsten: Gugg doch mal ob dir Sort/onCompare vom Tree weiterhilft :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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