![]() |
@Luckie: bin schon dabei, Danke !!!
|
Eine weitere Möglichkeit, welche ich noch schnell zum Besten geben möchte wäre
Code:
Damit würdest Du garantiert immer einen Backslash am Ende haben und könntest so die UNterverzeichnisse einfach "dranhängen".
if AnsiLastChar(PfadName)^ <> '\' then
PfadName := PfadName + '\'; P.S. Ich würde mich nicht darauf verlassen, dass SHBrowseForFolder den Pfad immer auf die gleiche Art und Weise zurückliefert. |
Moin Sakura,
wenn ich nicht sehr irre, liefert SHBrowseForFolder nur den ausgewählten Folder zurück, aber nicht den gesamten Pfad. Oder kennst Du dafür eine entsprechende Parametrisierung? |
Hi Christian,
in (zumindest) diesem Beispiel wird der komplette Pfad (UNC für Netzwerke) zurückgeliefert.
Code:
procedure TForm1.Button1Click(Sender: TObject);
var TitleName : string; lpItemID : PItemIDList; BrowseInfo : TBrowseInfo; DisplayName : array[0..MAX_PATH] of char; TempPath : array[0..MAX_PATH] of char; begin FillChar(BrowseInfo, sizeof(TBrowseInfo), #0); BrowseInfo.hwndOwner := Form1.Handle; BrowseInfo.pszDisplayName := @DisplayName; TitleName := 'Please specify a directory'; BrowseInfo.lpszTitle := PChar(TitleName); BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS; lpItemID := SHBrowseForFolder(BrowseInfo); if lpItemId <> nil then begin SHGetPathFromIDList(lpItemID, TempPath); ShowMessage(TempPath); GlobalFreePtr(lpItemID); end; end; |
Moin sakura,
danke für die prompte Antwort. Allerdings: Mit SHGetPathFromIDList mach ich das für die Rückgabe des Pfades auch. Ich hatte gedacht, Du wüsstest Paramter für SHBrowseForFolder, die einem das ersparen. ;-) |
MS wird uns da wohl keine andere Möglichkeit geben, da alle neueren Funktionen im Hintergrund mit diesen PIDLs arbeiten :( Aber immerhin gibt es ja SHGetPathFromIDList, damit uns das Leben etwas leichter fällt. :lol:
|
@Sakura: Danke!!!
Jonson |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 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-2025 by Thomas Breitkreuz