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/)
-   -   Delphi Ordner filtern in ShellTreeView (https://www.delphipraxis.net/212278-ordner-filtern-shelltreeview.html)

schmidtze 18. Jan 2023 09:30

Ordner filtern in ShellTreeView
 
Hallo,

ich benutze TsShellTreeView der AlphaControls. Darin möchte ich nun nur bestimmte Ordner anzeigen. Dafür gibt's auch ein Event, in welchem ich über einen Var-Parameter (CanAdd) sagen kann, ob dieser Ordner erscheinen soll, oder nicht. Dort habe ich ein Folder-Objekt welches u.a. auch ein Property AbsoluteId (PItemIDList) besitzt. Was ich nun nur anzeigen möchte, auf höherer Ebene, ist der Desktop-Folder als Root, darunter "Dieser PC" und "Netzwerk". Darunter dann auch wieder nur ausgewählte Ordner, unter "Dieser PC" die Laufwerke und "Dokumente" und "Bilder".

Kann mir jemand einen Tipp geben, wie ich nun ausfiltere, "Systemsteuerung", "Papierkorb", "Bibliotheken" usw., das will ich alles nicht anzeigen.

Herzlichen Dank im Voraus und viele Grüße
Friedemann

schmidtze 18. Jan 2023 13:32

AW: Ordner filtern in ShellTreeView
 
Hallo,

ach, vielleicht habe ich das zu umständlich beschrieben. Ich habe ein Objekt, an welchem auch ein PItemIDList-Property und ein IShellFolder-Property existieren. Nun möchte ich anhand dieser Properties herausfinden, ob es nun z.B. ein Folder vom Typ CSIDL_NETWORK (Netzwerk), CSIDL_CONTROLS (Systemsteuerung) oder CSIDL_DRIVES (Dieser PC) ist. Das scheint mir irgendwie nicht so ganz einfach. Müsste doch aber gehen...

Viele Grüße
Friedemann

tomkupitz 18. Jan 2023 21:23

AW: Ordner filtern in ShellTreeView
 
Meinst du so...

Code:
function SamePIDL(SF: IShellFolder; ID1, ID2: PItemIDList): Boolean; //SF=Desktop oder Computer
begin
  result:=SF.CompareIDs(0, ID1, ID2)=0;
end;
Beste Grüße

schmidtze 18. Jan 2023 22:00

AW: Ordner filtern in ShellTreeView
 
Jaaaaa, das geht, super!!!!! :-D Ganz ganz herzlichen Dank!!! :)

Grüße
Friedemann


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