TOpenDialog组件运用

      TOpenDialog组件实现打开指定文件功能。

    一.TOpenDialog组件的主要属性 
    DefaultExt----------此属性用于指定一个默认的扩展名 
    FileName-----------此属性用于指定一个文件名 
    Files------------------通过此属性可以访问多个文件 
    Filter-----------------此属性用于设置文件过滤器 
    FilterIndex----------此属性用于指定哪个过滤器是默认过滤器 
    InitialDir-------------设置此属性可以指定另外一个目录 
    Options--------------此属性用于设置“打开”对话框的选项 
    Title------------------此属性用于设置对话框的标题

     二、filter属性设置(最重要)

    此属性用于设置文件过滤器,让对话框只列出特定类型的文件。Filter属性可以设置多个过滤器,这些过滤器将显示在“打开”对话框的“文件类型”组合框内。方法如下:

    1、filter以"|" 作为1组过滤。 "|"左侧为 opendialog1显示的过滤提示字符,"|"左侧为过滤条件,如:'文档文件|*.doc‘;

     2、过滤条件2个以上,可以通过“;”字符追加,如:'文档文件|*.doc;*.docx;*.txt;*.xls’;

     3、如果2组过滤以上,通过 "|"字符追加,如:'文档文件|*.doc;*.docx;*.txt;*.xls;*.xlsx|Word文件|*.doc;*.docx‘;

     下面是4组的示例:

     opendialog1.filter:='文档文件|*.doc;*.docx;*.txt;*.xls;*.xlsx|Word文件|*.doc;*.docx|Excel文件|*.xls;*.xlsx|所有文件|*.*';

    三、其它属性
 

    (1)DefaultExt属性 
此属性用于指定一个默认的扩展名。如果用户在对话框中选择的文件没有带扩展名,就用这个属性作为文件的扩展名,如果不需要默认扩展名,应当把这个属性设为空。 
    (2)FileName属性 
      FileName 属性可以指定一个文件名。在打开对话框时,这个文件名出现在对话框的“文件名”框中。在对话框中,可以指定其他文件名,如果单击“OK”按钮,对话框将关 闭,并且FileName属性变成用户新指定的文件名,包括文件的路径和扩展名。FileName属性也可以指定一个不存在的文件名,表示将打开一个新文件。 
   (3)Files属性 
     如果Options属性包含ofAllowMultiSelect元素,表示允许一次选择多个文件,这些文件可以通过Files属性访问。Files属性是一个TStrings对象。 
     (4)FilterIndex属性
      如果有多个过滤器,这个属性用于指定哪个过滤器是默认过滤器。默认过滤器将显示在“打开”对话框的“文件类型”组合框的编辑框中。注意,过滤器的序号从1开始。

    (5)InitialDir属性
     此属性用于设置打开对话框第1次打开时的默认打开目录。例如要将打开对话框的默认打开目录设置为C盘根目录,就可以将InitialDir属性设置为“C:”。

    (6)Options属性
    此属性用于设置“打开”对话框的选项。它设定了如下16个用户可选值。以下可以多选: 
ofAllowMultiSelect:用户可以一次选择多个文件。 
ofCreatePrompt:如果用户输入的文件名是不存在的,当用户单击“OK”按钮时,将显示一个提示框,询问要不要建立这个文件。
ofExtensionDifferent:如果用户所选文件的扩展名与DefaultExt属性设置的默认扩展名不同,就包含这个元素。 
ofFileMustExist:用户输入的文件名必须是已存在的。
ofHideReadOnly:对话框中不显示“以只读方式打开”复选框。
ofNoChangeDir:即使用户在对话框中选择了其他目录,但对程序来说,当前目录总是对话框第一次打开时的目录。
ofNoDereferenceLinks:如果用户选择的是快捷方式文件(.lnk),FileName属性是快捷方式文件本身,而不是快捷文件指向的文件。
ofNoLongNames:不允许长文件名。
ofNoReadOnlyReturn:不允许用户选择只读的文件,否则将显示一个警告框。
ofNoTestFileCreate:保存文件时不进行写保护、磁盘满、驱动器门打开等检查。
ofNoValidate:不对文件名中的字符进行合法性检查。
ofOverwritePrompt:用于“另存为”对话框中,如果用户指定的文件名已存在,将显示一个警告框用来让用户选择是否要覆盖已有的文件。 
ofPathMustExist:用户输入的路径必须是已经存在的,否则将显示警告。 
ofReadOnly:选中“以只读方式打开”复选框。 
ofShareAware:对话框不理会所有的共享错误。 
ofShowHelp:对话框中将显示“帮助”按钮。

   (7)Title属性
     此属性用于设置对话框显示时的窗口标题。例如大多数据库程序都有还原数据库功能,其打开对话框的标题就可以设置为“打开还原文件”。

     四、事件

OnCanClose----------当用户试图关闭对话框时将触发这个事件 
OnFolderChange-----当用户在对话框中改变、扩展或折叠了一个目录(也叫文件夹),将触发该事件
OnSelectionChange-当用户打开对话框、选择某个目录或文件、选择另一个过滤器、建立一个新的目录时将触
发这个事件 
OnShow----------------当对话框调用Execute方法、并且对话框还未显示时触发此事件 
OnTypeChange-------当用户在对话框中选择了另一个过滤器时,将发生这个事件

    (1)OnCanClose事件
     当用户试图关闭对话框时将触发这个事件。这样就有机会对用户输入的文件名进行检查。如果文件名不符合要求,就把CanClose参数设为False,表示不允许关闭对话框。

    (2)OnFolderChange事件
     当用户在对话框中改变、扩展或折叠了一个目录(文件夹),将触发该事件。在程序中可以利用此事件获取用户浏览过的目录。

     (3)OnSelectionChange事件
     当用户打开对话框、选择某个目录或文件、选择另一个过滤器或建立一个新的目录时将触发这个事件。 
    OnSelectionChange事件与OnFolderChange事件相比触发的概率比较高。

(4)OnTypeChange事件
当用户在对话框中选择了另一个过滤器时,将触发这个事件。在此事件中结合FilterIndex属性的使用,可以获取当前对话。

    五、实现代码
    TOpenDialog组件最重要的方法就是Execute方法。

  opendialog1.Filter:='XML文件|*.xml|dproj文件|*.dproj';              // 设置过滤
  opendialog1.FileName:=ExtractFilePath(Application.ExeName)+'*.xml';// 指定专用文件名
  if opendialog1.Execute then                                        // 指定打开文件
    Edit1.Text:=opendialog1.FileName;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值