delphi 6有自带的,不过只能用在2000平台上

解决方案 »

  1.   

    procedure TFormBackUp.SpOpenFolderClick(Sender: TObject);
    var
      S: string;
      SystemPath:string//为网上邻居的路径。
    begin
      S := '';
      if SelectDirectory('请选择文件夹:', SystemPath, S) then
        edPath.Text := S;
      edPath.SetFocus;end;
      

  2.   

    楼上程序要引用FileCtrl这个单元。
      

  3.   

    这是我仿照SelectDirectory的源码改写的SelectComputer函数——function SelectComputer(Caption: String = ''; Handle: HWND = 0): String;
    var
      Buffer: array[0..MAX_PATH] of Char;
      Browse: TBrowseInfo;
      Root: PItemIDList;
    begin
      if Handle = 0 then Handle := Application.MainForm.Handle;
      if Trim(Caption) = '' then Caption := '请选择计算机';
      FillChar(Buffer, SizeOf(Buffer), 0);
      FillChar(Browse, SizeOf(Browse), 0);
      SHGetSpecialFolderLocation(Handle, CSIDL_NETWORK, Root);
      with Browse do
      begin
        hwndOwner := Handle;
        pidlRoot := Root;
        pszDisplayName := Buffer;
        lpszTitle := PChar(Caption);
        ulFlags := BIF_BROWSEFORCOMPUTER;
      end;
      if ShBrowseForFolder(Browse) = nil then Result := ''
      else Result := StrPas(Buffer);
    end;——使用的时候要加上对ShlObj单元的引用。你可以自己再做一些改造。
      

  4.   

    wangzh(独孤求问)给出的方法关键是SystemPath的赋值,你试试在SelectDirectory之前加上
    SystemPath := '::{208D2C60-3AEA-1069-A2D7-08002B30309D}';
    这个值是在我的注册表里找出来的,不知道是不是所有的win2000机器上都一样。