![]() |
AW: Listview.Clear dauert zu lange. Gibt es eine schnellere Methode?
Es wäre auch zu überlegen, ob man die Datenmenge nicht reduziert. Was will der Benutzer mit einigen tausend Einträgen?
|
AW: Listview.Clear dauert zu lange. Gibt es eine schnellere Methode?
Hallo zusammen,
vielen Dank erst einmal für Eure netten Antworten! :thumb: Das "Problem": ich benötige Checkboxen...und diese stehen in der Listview im virtuellen Modus leider nicht zur Verfügung (laut Hilfe). Und damit scheint wohl nur noch der VirtualStringTree übrig zu bleiben. Mit den Delphi Standard Komponeten komme ich so halbwegs zurecht. Ich hatte mir schon einige Male Source vom VirtualStringTree angeschaut, aber nie so richtig verstanden. Ich tue mich da etwas schwer etwas zu kopieren und einzusetzen, wenn ich es nicht verstehe. :stupid: Ich werde mal schauen ob ich mit der Listview so "durchkomme", ansonsten muss ich mich wohl doch etwas mit dem VirtualStringTree beschäftigen. Einen schönen Abend noch! Edit[roter Kasten]: @Luckie, Reduzierung der Datenmengen ist leider nicht möglich. Die Datenmengen sind nicht konstant, sondern sehr unterschiedlich. Ich gehe aber vom Worst Case aus und das sind lt. Kundenmkomentar bis zu 20.000 Datensätze. Wobei ich hier bei mir mit knapp 7000 Datensätze teste. |
AW: Listview.Clear dauert zu lange. Gibt es eine schnellere Methode?
Wenn du die Checkboxen selber zeichnest und die Klicks entsprechend auswertest, dann kannst du auch die Listview im virtuellen Modus verwenden.
PS: VST macht das auch nicht anders. Das Zeichnen kannste ganz einfach über den ThemeService vom Delphi machen oder du wendest dich direkt an die WinAPI, um dir die Checkboxen zeichnen zu lassen. |
AW: Listview.Clear dauert zu lange. Gibt es eine schnellere Methode?
Zitat:
Wenn du an einen bestimmten Knoten zu bestimmten Daten heran willst (und nicht nur umgekehrt von einem selektierten Node auf die Daten zugreifen willst), kannst du z.B. einen Pointer auf den Node mit in dein Objekt packen oder ein TDictionary von deinen Objekten auf den Node benutzen. Zitat:
|
AW: Listview.Clear dauert zu lange. Gibt es eine schnellere Methode?
Zitat:
Delphi-Quellcode:
uses
CommCtrl; // ... ListView1.Items.BeginUpdate; ListView1.Perform(LVM_DELETEALLITEMS, 0, 0); ListView1.Items.EndUpdate; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 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 by Thomas Breitkreuz