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/)
-   -   Explorer Verhalten nachahmen (https://www.delphipraxis.net/183996-explorer-verhalten-nachahmen.html)

Schwedenbitter 18. Feb 2015 14:29

Explorer Verhalten nachahmen
 
Hallo,

ich benutze in einem Programm die schon etwas in die Jahre gekommene TShellTreeView. Diese liegt bei den Demos mind. bis Delphi XE5 bei und man kann sie nachträglich installieren.

Ich habe aber das Problem, dass mein Programm auf veränderte Gegebenheiten reagieren soll. Und zwar so, wie es der Explorer von Windows tut, wenn man ein Verzeichnis mit einem anderen Programm hinzufügt oder entfernt.
Mir ist die Möglichkeit mittels
Delphi-Quellcode:
ShellTreeView1.Refresh();
bekannt. Als Parameter kann man aber - soweit für mich ersichtlich - bloß
Delphi-Quellcode:
ShellTreeView1.TopItem;
übergeben. Benutzt man dies, wird es aber unerträglich langsam und ein regelmäßiges Refresh mittels eines Timers ist unbrauchbar.

Gibt es eine Möglichkeit, den Refresh resourcenschonender hinzubekommen?
Falls ja, wie?

Gruß, Alex

Nersgatt 18. Feb 2015 15:52

AW: Explorer Verhalten nachahmen
 
Ich würde dafür sorgen, dass Du den Timer los wirst. Denn dann aktualisierst Du ja ständig unnötig.
Es gibt in der MSDN ein Beispiel, wie man auf Änderungen in einem Ordner "horchen" kann: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Das würde ich in einen Thread verpacken, der ein Synchronisiertes Ereignis auslöst, wenn sich etwas im Verzeichnis geändert hat. Dann muss Du nur noch dann Aktualisieren, wenn sich wirklich etwas geändert hat.


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