delphi 选择目录对话框(SelectDirectory 函数)

有时候会遇到选择文件保存目录的情况,只需要指定要保存的目录,二不要指定文件名。Delphi 中好像没有原生的组件可用,可以用下面的函数来实现:
函数原型:

function SelectDirectory(const Caption: string; const Root: WideString; out Directory: string): Boolean; overload;

function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;


参数说明:
对于第1 个重载函数,参数Caption 为对话框的标题内容;参数Root 指定一个目录,为进行浏览的最初目录选中的目录保存在参数Directory 中
对于第2 个重载函数,参数Directory 中指定的目录为对话框显示时选中的目录,最后用户选定的目录也保存在参数Directory 中;参数Options 为一些设置项目的集合,如果为空,则用户通过对话框只能选择已经存在的目录,没有提供编辑框给用户来输入一个新的目录名。TSelectDirOpts 类型定义如下:
type
TSelectDirOpt = (sdAllowCreate, sdPerformCreate, sdPrompt);
TSelectDirOpts = set of TSelectDirOpt;
具体数值的含义如下。

  • sdAllowCreate 对话框中有一个Edit 组件,用户可以输入新的目录名。但是如果要新建该目录,程序员必须根据获取的文件自己编写代码新建目录。
  • sdPerformCreate 对话框中有一个Edit 组件,用户可以输入一个不存在的目录名,对话框将选中该目录并创建该目录。
  • sdPrompt 对话框中有一个Edit 组件,如果用户输入的目录名不存在,则显示一个信息对话框提示是否创建新目录。如果同时选中的是sdAllowCreate 设置,则程序员必须根据获取的文件自己编写代码新建目录。

注意:在使用前要在Uses 语句中添加包含FileCtrl 的说明。
示例代码:

// 更改数据库文件保存位置
procedure TForm1.BtnChangeFileLocationClick(Sender: TObject);
var
  strPath: string; // 用户选定后的目录
begin
  strPath := '';
  if (SelectDirectory('请选择文件保存的路径', '', strPath)) then
  begin
    Form1.lblEdt_FileLocation.Text := strPath;
  end;
end;







运行效果:

你可能感兴趣的:(DELPHI函数类)