![]() |
TreeView mit 200.000 Einträge und nachladen
Hi Leute,
ich habe eine TreeView, die später 200.000 Einträge hat. Alles auf einmal zu laden wäre Wahnsinn. Aber - es gibt das (Explorerartige) Verfahren des nachladens und entladen der Knoten. Kann mir mal bitte jemand im Schnelldurchlauf schreiben, wie dies funktioniert? Danke |
Re: TreeView mit 200.000 Einträge und nachladen
Hallo,
dazu geht man folgendermaßen vor: Die Knoten der aktuellen Ebene erstellen. Nachschauen, welche Knoten Unterknoten besitzen. Dort jeweils einen Dummyknoten einfügen, damit ein Pluszeichen erscheint. Im OnChange-Ereignis prüfen, ob ein Dummyknoten existiert, dann diesen löschen und stattdessen die Ebene einlesen. Gruß xaromz |
Re: Danke
Die NAchtarbeiter sind ja mal wieder Fix - Danke!
|
Re: TreeView mit 200.000 Einträge und nachladen
Zitat:
Besser eine virtuelle Variante einer TreeView verwenden, die läd die Daten erst, wenn Sie in den Sichtbereich rücken. Sehr scnell. kostenlose Variante unter ![]() |
Re: TreeView mit 200.000 Einträge und nachladen
Hallo,
einen Dummyknoten einfügen ist nicht erforderlich, es reicht folgendes:
Delphi-Quellcode:
TreeView1.Selected.HasChildren := True;
//... if TreeView1.Selected.HasChildren then //Knoten laden |
Re: TreeView mit 200.000 Einträge und nachladen
Hallo,
Zitat:
Gruß xaromz |
Re: TreeView mit 200.000 Einträge und nachladen
Zitat:
|
Re: TreeView mit 200.000 Einträge und nachladen
Hallo,
feststellen ob noch geladen werden muss:
Delphi-Quellcode:
if (TreeView1.Selected.HasChildren) and
(TreeView1.Selected.Count = 0) then showmessage('Noch Laden'); |
Re: TreeView mit 200.000 Einträge und nachladen
Weiterführende Fragen zum Thema - weil ich total verwirrt und irgendwie orientierungslos geworden bin. In den Foren gibsts nur ansatzweise Abhilfe meines Problems.
Zitat:
Irgendwie ist mir nicht klar, wie ich die notwendige Datenstruktur hierzu erstellen muß. Ich habe 200.000 Einträge, die ich beliebig zusammenstellen kann. Als #09-Einrückern formatiert und load - benötigt der komplette Baum ca 20-30 sec. Einzelne Root-Zweige bis zu 8 sec. Das ist mir zu lang. Oder aber wie diess (so wie ichs gern verwenden würde, weil ich hier das Icon, die passende Verlinkung und mehr bereits integrieren kann):
Delphi-Quellcode:
Fragen:
Datei Knoten
| | NodeText | | | 00097498:00:Root-Knoten ganz unten (00) -> davon gibts 50 Stück 00097499:01:Unterknoten 0-1 00097500:02:Unterknoten 0-2 00097501:01:Unterknoten 0-3 00097502:02:Unterknoten 0-3-1 00097503:02:Unterknoten 0-3-2 00097504:03:Unterknoten 0-3-2-1 etc --> Die Knoten der aktuellen Ebene erstellen... Benötigt eine Datei mit diesem Index oder aber Handarbeit. Benötigen die SubEinträge denn ebenfalls jeweils Dateien, die geladen und eingefügt werden? Oder kann ich nicht dem Knoten so etwas wie einen neuen absoluten Index verpassen, der meinem zweiten Modell entspricht? Ich hab gelesen, ein Objekt zuordnen würde gehen, finde aber keine Hinweise, wie das geht. --> Im OnChange-Ereignis prüfen, ob ein Dummyknoten(HasChildren)existiert Nachfrage dessen ist mir klar - aber das ganze müßte dann wieder gestoppt werden. Also eine Begrenzung des füllens. Ebene einlesen - sieht wieder nach indizierten Dateien aus, oder Abfragen, ob der Sub-Eintrag noch Childs enthält, dann break. Ich will die Erzeugung von möglichen 200.000 Dateien vermeiden. Wie geht das? Wenn ich keine Urheberrechte verletze, hat jemand ein paar Source-Beispiel für mich? Ich blick da nicht wirklich durch. Danke :? |
Re: TreeView mit 200.000 Einträge und nachladen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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