程序中的对话框(1)- “打开”对话框

程序设计时,我们经常会需要打开或选择计算机上的文件,这时候就可以使用TOpenDialog组件来显示一个文件选择对话框。

1、“打开”对话框的标题设置

对话框的标题可以让用户明白对话框的意图,标题的自定义需要设置“打开”对话框的Title属性,需要注意的是,只有ofExNoPlaceBar属性为False才能看到对话框标题。

2、设置打开对话框不显示位置栏

修改TOpenDialog的OptionEx属性中的子属性ofExNoPlaceBar为True,是打开的对话框没有位置栏(位置栏指的是左侧,桌面,此电脑等)。

3、设置打开对话框的文件类型过滤器

通过设置文件类型过滤器,我们可以根据文件类型缩小查询范围一边选择。有两种方式.

(1)通过对象监视器中的Filter属性进行设置

 (2)通过代码进行设置

OpenDialog1.Filter:= '文本文件|*.txt|单元文件|*.pas';//使用|隔开
 OpenDialog1.Execute;

4、设置打开对话框打开时的初始文件路径

设置InitialDir 属性可以赋予对话框的初始文件路径,如果没有设置该属性或者指定的目录不存在,则由全局变量ForceCurrentDirectory确定初始化目录,如果该变量为True,

对话框则在当前工作目录处被打开,否则对话框会在当前工作目录或者我的文档目录处被打开,这依赖于Windows版本。

OpenDialog1.InitialDir:='d:\';//默认打开D 盘符
OpenDialog1.Execute;

5、设置打开对话框可以选择多个文件

TOpenDialog组件有个Option属性,通过修改这个增加这个属性中的选项,可以改变对话框的外观跟行为。

如果需要同时选择多个文件,需要设置Options属性中的子属性ofAllowMultSelect的值为True。

示例:

OpenDialog1.Options:= OpenDialog1.Options+ [ofAllowMultiSelect];//原有的options属性加上多文件属性
OpenDialog1.Execute;

                                      options属性说明

     属性            说明     
ofReadOnly 只读复选框被选中
ofOverwritePrompt  当用户选择一个已存在的文件时,弹出一个警告信息框,询问是否重写该文件
ofhideReadOnly 隐藏“打开“对话框中的只读复选框
ofNoChangeDir 当用户单击ok 按钮后,重新设置当前路径为选择文件之前的路径
ofShowHelp 在对话框中显示”帮助“按钮
ofNoValidate 对于”打开“对话框中选择的文件名不进行检查,允许非法的文件名
ofAllowMultiSelect 程序运行时用户可以同时选择多个文件
ofExtensionDirfferent 程序运行时,当选择的文件扩展名与DefaultExt属性不同时,则自动设置该标记
ofPathMustExist 当用户选择的文件目录不存在时,弹出一个错误消息框
ofFileMustExist 当用户选择一个不存在的文件时,弹出一个错误信息框
ofCreatePrompt 当用户选择一个不存在的文件时,弹出一个信息框,询问是否创建新的文件
ofShareAware 当文件共享非法时,忽略共享错误,允许用户选择文件
ofNoReadonlyReturn 当用户选择一个只读文件,产生一个错误消息
ofnoTestFileCreate 当用户在一个不能修改的共享网络路径中保存文件时,不进行网络文件的保护,磁盘路径,磁盘空间等检查
ofNoNetworkbutton 在对话框中打开一个映射网络驱动对话框时,移除”网络“按钮,该选项只有在Options属性包含ofOldStyleDialog选项时才可用
ofNoLongNames 只遵循文件命名规则,该选项只有在包含ofOldStyleDialog选项时才起作用
ofOldStyleDialog ”打开“对话框采用旧的风格
ofNoDereferenceLinks 禁止放弃windows的快捷方式,当打开一个快捷方式时,赋予文件名(FileName)快捷方式的路径和名称,而不是快捷方式关联的文件路径和名称
ofEnableIncludNotify 当用户在对话框中打开一个文件夹时,发送CDN_INCLUDEITEM通知消息,该通知被发送到文件夹内部的每一项,该选项之应用在win2000及以后的版本
ofEnableSizing 该选项只应用在win98及之后的版本,允许资源管理器风格的对话框,通过鼠标或键盘调整大小,在默认情况下,”打开“对话框允许调整大小,而不考虑该选项,在用户提供了钩子函数或自定义模板时才需要该选项
ofDontAddToRecent 阻止文件添加到最近打开的文件列表中
ofForceShowHidden 保证隐藏文件在对话框中可见

(1)DefaultExt属性 
此属性用于指定一个默认的扩展名。如果用户在对话框中选择的文件没有带扩展名,就用这个属性作为文件的扩展名,如果不需要默认扩展名,应当把这个属性设为空。

(2)FileName属性 
FileName属性可以指定一个文件名。在打开对话框时,这个文件名出现在对话框的“文件名”框中。在对话框中,可以指定其他文件名,如果单击“OK”按钮,对话框将关闭,并且FileName属性变成用户新指定的文件名,包括文件的路径和扩展名。FileName属性也可以指定一个不存在的文件名,表示将打开一个新文件。

(3)FilterIndex属性

如果有多个过滤器,这个属性用于指定哪个过滤器是默认过滤器。默认过滤器将显示在“打开”对话框的“文件类型”组合框的编辑框中。注意,过滤器的序号从1开始。

6、TOpenDialog组件的重要事件

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

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/fansizhe/p/12783906.html