Hallo zusammen, ich nutze folgende Funktion.
Delphi-Quellcode:
Function BrowseFolder(Caption:String):String;
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
Temp:string;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := application.handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := Caption;
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
Temp:=(TempPath);
if length(trim(temp))=0 then exit;
temp:=copy(temp,length(temp),1);
if temp='\' then
BrowseFolder:=trim(TempPath)
else
BrowseFolder:=trim(TempPath)+'\';
end;
GlobalFreePtr(lpItemID);
end;
Aufruf
var Temp:String;
begin
temp:=BrowseFolder('Wählen Sie einen Quellordner');
if DirectoryExists(temp) then Edit1.text:= temp
end;
Gruß
Orion3000