我想得到文件夹的路径,怎样调用“浏览文件夹”窗口。
就像在Delphi中设置Library的路径时的窗口。
我用过SelectDirectory函数,但是不能显示网络中的文件夹
请高手指点
谢!
在线等待

解决方案 »

  1.   

    var
      s: string;
    begin
      SelectDirectory('请选择一个目录:', '', s);
      Edit1.Text := s;
    end;
    我试过,好象可以显示网络路径啊
      

  2.   

    我找到答案了
    uses shlobj;
    以下是自定义的一个函数,封装了SHBrowseForFolder API函数
    function TForm1.BrowseFolder: string;
    var
      Info:TBrowseInfo;
      Dir:array[0..260] of char;
      ItemId:PItemIDList;
    begin
      with Info do
      begin
        hwndOwner:=self.Handle;
        pidlRoot:=nil;
        pszDisplayName:=nil;
        lpszTitle:='请选择相应文件夹';
        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;该函数如果返回的字符串为空,即用户选择了“取消”按钮。
      

  3.   

    这个
    http://ahjoe.com/2/dirdlg.zip
    我一直用它。