• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi2010显示选择文件夹对话框(有新建按钮)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

之前发的那个Delphi 显示选择文件夹对话框 (有新建按钮) 是D7版本的...升级到2010后居然不能直接使用

仔细研究发现原来是_browseinfoA类型变成了BROWSEINFO类型

其他基本不用变

uses ShlObj;

 

 1 function SelectFolderDialog(const Handle:integer;const Caption:string;
 2               const InitFolder:string;var SelectedFolder:string):boolean;
 3 var
 4   BInfo: BROWSEINFO;
 5   Buffer: array[0..MAX_PATH] of Char;
 6   ID: IShellFolder;
 7   Eaten, Attribute: Cardinal;
 8   ItemID: PItemidlist;
 9 begin
10   with BInfo do
11   begin
12     HwndOwner := Handle;
13     lpfn := nil;
14     lpszTitle := PWideChar(Caption);
15     ulFlags := BIF_RETURNONLYFSDIRS+BIF_NEWDIALOGSTYLE;
16     SHGetDesktopFolder(ID);
17     ID.ParseDisplayName(0,nil,'\',Eaten,ItemID,Attribute);
18     pidlRoot := ItemID;
19     GetMem(pszDisplayName, MAX_PATH);
20   end;
21   if SHGetPathFromIDList(SHBrowseForFolder(BInfo), Buffer) then
22   begin
23     SelectedFolder := Buffer;
24     if Length(SelectedFolder)<>3 then
25       SelectedFolder := SelectedFolder;
26     result := True;
27   end
28   else begin
29     SelectedFolder := '';
30     result := False;
31   end;
32 end;

 

调用方法:

 

1 procedure TForm1.Button1Click(Sender: TObject);
2 var
3   NewDir:string;
4 begin
5 if SelectFolderDialog(Handle,'选择目录','C:\',NewDir) then
6        Label1.Caption:=NewDir;
7 end;

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【Delphi学习】ADOQuery用法发布时间:2022-07-18
下一篇:
Delphi中的DLL封装和调用对象技术(刘艺,有截图)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap