软件注册站
热情软件屋

 
DELPHI中通过SHBrowseForFolder函数实现选择目录
编号: QA002133    
建立日期: 1999年11月30日 最后修改日期: 2000年12月24日
所属类别: Delphi - 磁盘、文件和目录
   
    操作系统: Windows
    编程工具: Delphi
    问题: 本人目前正在学习DELPHI,本人对VC较熟,在VC中能够通过SHBrowseForFolder函数实现选择目录,但却不知怎样在DELPHI下实现,主要是在回调函数及PCHAR和之间如何转换上不知如何处理,请高手见教。(yunzone)
   
    下面是一个例子:
    uses ShellAPI, ShlObj;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
     TitleName : string;
     lpItemID : PItemIDList;
     BrowseInfo : TBrowseInfo;
     DisplayName : array[0..MAX_PATH] of char;
     TempPath : array[0..MAX_PATH] of char;
    begin
     FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
     BrowseInfo.hwndOwner := Form1.Handle;
     BrowseInfo.pszDisplayName := @DisplayName;
     TitleName := 'Please specify a directory';
     BrowseInfo.lpszTitle := PChar(TitleName);
     BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
     lpItemID := SHBrowseForFolder(BrowseInfo);
     if lpItemId <> nil then begin
     SHGetPathFromIDList(lpItemID, TempPath);
     ShowMessage(TempPath);
     GlobalFreePtr(lpItemID);
     end;
    end;
    

    
    caiyt问:
    怎样才能通过SHBrowseForFolder函数实现只选择计算机?
    答:关键在BROWSEINFO结构的ulFlags,如果是BIF_BROWSEFORCOMPUTER则只选择计算机,如果是BIF_BROWSEFORPRINTER,则只选择打印机。

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Delphi, VCL, Borland, 磁盘、文件和目录, disk, file, fat, directory, folder

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio