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 TShellTreeView Hilfe (https://www.delphipraxis.net/53493-tshelltreeview-hilfe.html)

Jonas 17. Sep 2005 16:49


TShellTreeView Hilfe
 
Ich bin noch ein relativer Delphi-neuling und hab mal ne Frage.
Ich wollte in meinem TShellListView object ne verlinkung zum Ordner Quick Launch auf folgende Art und Weise machen:
Delphi-Quellcode:
    Root = 'rfAppData' + 'Microsoft\Internet Explorer\Quick Launch'
bekomme jedoch nur einen Error.

Also nun meine Frage, was ist daran falsch bzw wie muss es richtig lauten?

Danke!

Sharky 17. Sep 2005 17:56

Re: TShellTreeView Hilfe
 
Hai Jonas,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS".

das liegt daran das die TShellListView das "Verzeichniss" rfAppDate intern händelt.
Du musst dir also auf einem anderen Weg den Pfad zu diesem Verzeichniss holen.
Entweder so:
Delphi-Quellcode:
uses
  ShlObj;

function GetShellFolder(CSIDL: integer): string;
var
  pidl: PItemIdList;
  FolderPath: string;
  SystemFolder: Integer;
begin
  FolderPath := '';
  SystemFolder := CSIDL;
  if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
  begin
    SetLength(FolderPath, MAX_PATH);
    SHGetPathFromIDList(pidl, PChar(FolderPath));
    SetLength(FolderPath, lstrlen(PChar(FolderPath)));
  end;
  Result := FolderPath;
end;
und übergibst als CSIDL CSIDL_APPDATA.
Oder so:
Delphi-Quellcode:
function AppDataDir: string;
begin
  Result := GetEnvironmentVariable('APPDATA');
end;
Aufrufen kannst Du es dann so:
Delphi-Quellcode:
procedure TForm1.btn_TestClick(Sender: TObject);
var
  app_Data_dir : string;
begin
  app_Data_dir := GetShellFolder(CSIDL_APPDATA);
//  app_Data_dir := AppDataDir;
  ShellTreeView1.Root := app_Data_dir + '\Microsoft\Internet Explorer\Quick Launch';
end;

marabu 17. Sep 2005 18:06

Re: TShellTreeView Hilfe
 
Hallo Jonas,

herzlich willkommen in der Delphi-PRAXiS.

Entweder du trägst eine der definierten Konstanten (z.B. rfAppData) oder einen vollständigen Verzeichnispfad in die root property von ShellListView ein. Mischen geht nicht - und schon gar nicht so, wie du das probiert hast. Besser so:

Delphi-Quellcode:
   
begin
  ...
  ShellListView1.Root := IncludeTrailingPathDelimiter(GetEnvironmentVariable('APPDATA'))
    + 'Microsoft\Internet Explorer\Quick Launch';
  ...
end;
Grüße vom marabu

Zu langsam getippt...

Jonas 17. Sep 2005 18:44

Re: TShellTreeView Hilfe
 
Danke, euch beiden. Funktioniert prima. :)


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