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中检索将会得到更多的文