就是去掉文件类型combobox,显示文件的listview只显示文件夹。

解决方案 »

  1.   

    win31里的哪个控件可不可以直接显示文件夹?
      

  2.   

    Win31里有几个可供你选择的关注
      

  3.   

    uses FileCtrl;
    .....
    var Dir:String;
    begin
     if  SelectDirectory(Dir, [sdAllowCreate, sdPrompt],1000) then
      edit1.Text:=Dir;
     end;
    end.这样是否可以满足你的要求
      

  4.   

    selectdirectory太丑了,win31的也不符合win2000,xp下的风格。应该可以改造好的,本来想找个现成的节约点时间。看来是没人做过这个东东,只好自已做喽。
      

  5.   

    Raize控件的TRzSelectFolderDialog还不错,建议可以使用,我用的是3.06版本
      

  6.   

    uses
       ...,QDialogs;procedure TForm1.Button1Click(Sender: TObject);
    var
      Dir: WideString;
    begin
      if SelectDirectory('asdfasdf', '', Dir) then
        edit1.Text := Dir;
    end;
      

  7.   

    如何指定SelectDirectory的起始目录:uses 
      shlobj,ActiveX; 
      var
       Form1: TForm1; 
       Path: string;   //起始路径implementation {$R *.DFM} function BrowseCallbackProc(hwnd: HWND;uMsg: UINT;lParam: Cardinal;lpData: Cardinal): integer; stdcall; 
    begin 
      if uMsg=BFFM_INITIALIZED then 
        result :=SendMessage(Hwnd,BFFM_SETSELECTION,Ord(TRUE),Longint(PChar(Path))) 
      else 
        result :=1 
    end; function SelDir(const Caption: string; const Root: WideString; out Directory: string): Boolean; 
    var 
      WindowList: Pointer; 
      BrowseInfo: TBrowseInfo; 
      Buffer: PChar; 
      RootItemIDList, ItemIDList: PItemIDList; 
      ShellMalloc: IMalloc; 
      IDesktopFolder: IShellFolder; 
      Eaten, Flags: LongWord; 
    begin 
      Result := False; 
      Directory := ''; 
      FillChar(BrowseInfo, SizeOf(BrowseInfo), 0); 
      if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then 
      begin 
        Buffer := ShellMalloc.Alloc(MAX_PATH); 
        try 
          RootItemIDList := nil; 
          if Root <> '' then begin 
            SHGetDesktopFolder(IDesktopFolder); 
            IDesktopFolder.ParseDisplayName(Application.Handle, nil, POleStr(Root), Eaten,           RootItemIDList, Flags); 
          end; 
          with BrowseInfo do begin 
            hwndOwner := Application.Handle; 
            pidlRoot := RootItemIDList; 
            pszDisplayName := Buffer; 
            lpszTitle := PChar(Caption); 
            ulFlags := BIF_RETURNONLYFSDIRS; 
            lpfn :=@BrowseCallbackProc; 
            lParam :=BFFM_INITIALIZED; 
          end; 
          WindowList := DisableTaskWindows(0); 
          try 
            ItemIDList := ShBrowseForFolder(BrowseInfo); 
          finally 
            EnableTaskWindows(WindowList); 
          end; 
          Result := ItemIDList <> nil; 
          if Result then begin 
            ShGetPathFromIDList(ItemIDList, Buffer); 
            ShellMalloc.Free(ItemIDList); 
            Directory := Buffer; 
          end; 
        finally 
          ShellMalloc.Free(Buffer); 
        end; 
      end; 
    end; procedure TForm1.SpeedButton1Click(Sender: TObject); 
    var 
      Path1: string; 
    begin 
      Path :=Edit1.Text; 
      SelDir('SelectDirectory Sample','d:\temp',Path1); 
      Edit1.Text :=Path1 
    end; end.