ShellAPI函数——SHBrowseForFolder(事实上,第二种方法的第二种语法就是调用了这个API,这在Delphi的源代码中可以得到证实)。因为它是使用系统已有的API,这样就不会占用太多的系统资源,从而减小代码长度、提高程序运行速度,并且在Windows的不同语言版本中会自动的和Windows相适应。具体代码如下:
var
Info: TBrowseInfo;
Dir: array[0..260] of char;
ItemId: PItemIDList;
begin
with Info do
begin
hwndOwner := self.Handle;
pidlRoot := nil;
pszDisplayName := nil;
lpszTitle := ′请选择XXX的文件夹′;
ulFlags := 0;
lpfn := nil;
lParam := 0;
iImage := 0;
end;
ItemId := SHBrowseForFolder(Info);
if ItemId <> nil then
begin
SHGetPathFromIDList(ItemId, @Dir);
Result := string(Dir);
end
else
Result := ′′;
end;
如果你对最后的这种方法感兴趣,以Browsing for Folders为主题在Windows API Help中检索将会得到更多的文
var
Info: TBrowseInfo;
Dir: array[0..260] of char;
ItemId: PItemIDList;
begin
with Info do
begin
hwndOwner := self.Handle;
pidlRoot := nil;
pszDisplayName := nil;
lpszTitle := ′请选择XXX的文件夹′;
ulFlags := 0;
lpfn := nil;
lParam := 0;
iImage := 0;
end;
ItemId := SHBrowseForFolder(Info);
if ItemId <> nil then
begin
SHGetPathFromIDList(ItemId, @Dir);
Result := string(Dir);
end
else
Result := ′′;
end;
如果你对最后的这种方法感兴趣,以Browsing for Folders为主题在Windows API Help中检索将会得到更多的文
还挺简单,实际也调用这函数
在什么地方有定义?