c++buider中提供有TSaveDialog、TOpenDialog等打开保存指定文件名的对话框,但没有提供文件夹选择的对话框。那么,在BCB中如何弹出文件夹浏览对话框窗口,来选择文件夹呢?
c++builder中提供了SelectDirectory函数来实现我们想要的功能。
SelectDirectory函数弹出对话框,供用户选择目录。
该函数在FileCtrl.hpp中声明。
在对话框和消息例程分类下。
其定义有如下两种形式:
extern PACKAGE bool __fastcall SelectDirectory(constAnsiString Caption, const WideString Root, AnsiString &Directory);
extern PACKAGE bool __fastcall SelectDirectory(AnsiString &Directory, TSelectDirOpts Options, int HelpCtx);
第一种语法形式显示Windows系统目录浏览器外观。
参数 Caption 指定对话框的标题。
参数 Root 指定默认的浏览起始根目录。
最终选择的路径名通过参数 Directory 返回。
这种调用方式下,SelectDirectory 不会改变程序默认的当前目录的值。
注意:不要给参数 Root 和 Directory 赋值同一个变量。
第二种语法形式调用BCB自带的对话框。
参数 Directory 设定对话框显示时默认的选择路径。函数返回后,参数 Directory 的值为用户选择的路径。
参数 HelpCtx 为帮助内容ID,消息框按“Help”按钮或按F1出现的帮助文档,若无需帮助的话,设置为0即可。
参数 Options 为标志位组合。如果为空,用户只能选择已存在的目录;对话框不提供新建文件夹的编辑框。
如果参数 Options 不空,其值决定了用户键入不存在的目录是对话框如何处理。
以上两种方式,如果用户选择了路径,并点击确定按钮,SelectDirectory 函数均返回true;如果点击了取消或者关闭按钮,函数返回 false 。
暂无评论内容