Når man bruger en alm. opendialog så kan man ikke vælge mapper. Hvis man trykker på en mappe og vælger åben, så åbner den bare mappen. DVS at man kun kan vælge enkelte filer.
Hvordan gør man hvis man vil kunne vælge hele mappen?
Nej.... Der skal du bruge en Browse-For-Folder dialog. Denne findes ikke som visuel kontrol.
Denne kode kan klare det:
function BrowseForFolder(var Foldr: string; Title: string): Boolean;
var
BrowseInfo: TBrowseInfo;
ItemIDList: PItemIDList;
DisplayName: array[0..MAX_PATH] of Char;
begin
Result := False;
FillChar(BrowseInfo, SizeOf(BrowseInfo), #0);
with BrowseInfo do begin
hwndOwner := Application.Handle;
pszDisplayName := @DisplayName[0];
lpszTitle := PChar(Title);
ulFlags := BIF_RETURNONLYFSDIRS;
end;
ItemIDList := SHBrowseForFolder(BrowseInfo);
if Assigned(ItemIDList) then
if SHGetPathFromIDList(ItemIDList, DisplayName) then begin
Foldr := DisplayName;
Result := True;
end;
end;
Regner med at du selv kan integrere det...
MH.
The-Freak
Livet er for kort til at kede sig.