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/)
-   -   MustangpeakVirtualshellTools, VirtualExplorerListView, SetCheckedFileNames sehr lahm (https://www.delphipraxis.net/213606-mustangpeakvirtualshelltools-virtualexplorerlistview-setcheckedfilenames-sehr-lahm.html)

DieDolly 25. Aug 2023 09:29

MustangpeakVirtualshellTools, VirtualExplorerListView, SetCheckedFileNames sehr lahm
 
Seit einiger Zeit teste ich das VirtualExplorerListView von MustangpeakVirtualshellTools.
Eine einfache GUI ist in den Demos vorhanden (Demos/Explorer CheckBoxes).

Wenn man ein Memo hat mit Pfaden drin die man checked haben möchte, ruft man auf
Delphi-Quellcode:
VirtualCheckboxesSynchronizer.SetCheckedFileNames(Memo.Lines.Text);

Das ruft dann SetCheckedFileNames in https://github.com/TurboPack/Mustang...nchronizer.pas auf.

In einem Verzeichnis (Verzeichnis\2\) habe ich 358 Dateien mit je 1 Byte Größe zum Testen. Alle Pfade die Verzeichnis\2\ betreffen stehen auch im Memo.
Die alle checked true zu setzen dauert irgendwie sehr sehr lange. Ich habe es noch nie durchlaufen lassen. Nach 1 Minute breche ich immer ab weil so lange will man nicht warten.

Kennt sich jemand mit der Komponente aus und weiß, warum das so super lange dauert? Schon bei 100 Dateien dauert es schon lange. Bei mir dauert das das 50 Sekunden.

Meine Verzeichnisstruktur:
- Verzeichnis\ <- enthält 342 Dateien je 1 Byte
- Verzeichnis\1\ <- enthält 322 Dateien je 1 Byte
- Verzeichnis\2\ <- enthält 358 Dateien je 1 Byte

peterbelow 25. Aug 2023 10:18

AW: MustangpeakVirtualshellTools, VirtualExplorerListView, SetCheckedFileNames sehr
 
Sieh mal nach ob das Control Methoden wie BeginUpdate + EndUpdate oder was ähnliches hat, mit dem man ein Neuzeichnen nach jeder Änderung unterbinden kann.

DieDolly 25. Aug 2023 10:29

AW: MustangpeakVirtualshellTools, VirtualExplorerListView, SetCheckedFileNames sehr
 
Aufgebaut ist das alles mit 3 Komponenten
TVirtualExplorerListview = der linke Teil des Explorers für Verzeichnisse
TVirtualExplorerTreeview = der rechte Teil des Explorers für Dateien in den Verzeichnissen

Verbunden wird das mit einem TVirtualCheckboxesSynchronizer.

Das hier ist alles was man machen kann und es bringt leider nichts. Intern setzt SetCheckedFileNames FList auch BeginUpdate und EndUpdate.
Delphi-Quellcode:
  VirtualExplorerListview.BeginUpdate;
  VirtualCheckboxesSynchronizer.SetCheckedFileNames(Liste);
  VirtualExplorerListview.EndUpdate;
Das muss doch schneller gehen. 100 CheckBoxen sind ja jetzt nicht die Welt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 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