AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TreeView nach Namen und Vorkommen ordnen

Ein Thema von Ajintaro · begonnen am 18. Mai 2017 · letzter Beitrag vom 18. Mai 2017
Antwort Antwort
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#1

TreeView nach Namen und Vorkommen ordnen

  Alt 18. Mai 2017, 15:25
Hallo DP!

Ich habe auf destructor.de den XML parser benutzt um eine kleine xml Datei (siehe Anhang) in einem TreeView anzuzeigen:
http://jaimy.net/tmp/tree.PNG

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:
http://jaimy.net/tmp/sho.PNG

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:
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;
Gibt es keine einfacheren Zähl-Funktionen bei einem TreeView? So etwas wie count childnodes einer Ausgangsnode?

Gruß,

Ajin
Angehängte Dateien
Dateityp: xml books.xml (4,7 KB, 1x aufgerufen)
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TreeView nach Namen und Vorkommen ordnen

  Alt 18. Mai 2017, 16:42
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.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: TreeView nach Namen und Vorkommen ordnen

  Alt 18. Mai 2017, 21:06
Ich würde das ganze gleich beim einlesen/aufbauen des Tree's machen.

Ansonsten:

Gugg doch mal ob dir Sort/onCompare vom Tree weiterhilft
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 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