[转]TOpenDialog
转自:http://www.cnblogs.com/zhangzhifeng/archive/2011/08/04/2127395.html
1.TOpenDialog组件的典型用法
“打开”对话框是用TOpenDialog组件实现的,TOpenDialog组件是非可视组件。
Filter属性用于设置文件过滤器,让对话框只列出特定类型的文件。在设计时可以单击Filter属性旁的省略号“.”按钮,打开“Filter.Editor”对话框,在“Filter.Name”栏键入关于过滤器的简短说明,在“Filter”栏键入通配符,在设计期,把“打开”对话框组件加到窗体上,看到的是TOpenDialog组件的图标,只有调用对话框的Execute方法,才能在运行期看到真正的对话框。
2.TOpenDialog组件的重要属性
DefaultExt-------------此属性用于指定一个默认的扩展名
FileName---------------此属性用于指定一个文件名
Files------------------通过此属性可以访问多个文件
Filter-----------------此属性用于设置文件过滤器
FilterIndex------------此属性用于指定哪个过滤器是默认过滤器
InitialDir-------------设置此属性可以指定另外一个目录
Options----------------此属性用于设置“打开”对话框的选项
Title------------------此属性用于设置对话框的标题
(1)DefaultExt属性
此属性用于指定一个默认的扩展名。如果用户在对话框中选择的文件没有带扩展名,就用这个属性作为文件的扩展名,如果不需要默认扩展名,应当把这个属性设为空。
(2)FileName属性
FileName属性可以指定一个文件名。在打开对话框时,这个文件名出现在对话框的“文件名”框中。在对话框中,可以指定其他文件名,如果单击“OK”按钮,对话框将关闭,并且FileName属性变成用户新指定的文件名,包括文件的路径和扩展名。FileName属性也可以指定一个不存在的文件名,表示将打开一个新文件。
(3)Files属性
如果Options属性包含ofAllowMultiSelect元素,表示允许一次选择多个文件,这些文件可以通过Files属性访问。Files属性是一个TStrings对象。
(4)Filter属性
此属性用于设置文件过滤器,让对话框只列出特定类型的文件。在设计时,可以单击 Filter属性旁的“...”按钮,打开“Filter Editor”对话框,在“Filter Name”栏键入关于过滤器的简短说明,在“Filter”栏键入通配符,例如通配符“*.txt”表示让对话框只显示扩展名为.txt的文件。当然,用户可以在“打开”对话框的“文件名”框内直接输入一个扩展名不为 .txt文件名的文件。同时,Filter属性可以设置多个过滤器,这些过滤器将显示在“打开”对话框的“文件类型”组合框内。
(5)FilterIndex属性
如果有多个过滤器,这个属性用于指定哪个过滤器是默认过滤器。默认过滤器将显示在“打开”对话框的“文件类型”组合框的编辑框中。注意,过滤器的序号从1开始。
(6)InitialDir属性
此属性用于设置打开对话框第1次打开时的默认打开目录。例如要将打开对话框的默认打开目录设置为C盘根目录,就可以将InitialDir属性设置为“C:\”。
(7)Options属性
此属性用于设置“打开”对话框的选项。它设定了如下16个用户可选值。
. ofAllowMultiSelect:用户可以一次选择多个文件。
. ofCreatePrompt:如果用户输入的文件名是不存在的,当用户单击“OK”按钮时,将显示一个提示框,询问要不要建立这个文件。
. ofExtensionDifferent:如果用户所选文件的扩展名与DefaultExt属性设置的默认扩展名不同,就包含这个元素。
. ofFileMustExist:用户输入的文件名必须是已存在的。
. ofHideReadOnly:对话框中不显示“以只读方式打开”复选框。
. ofNoChangeDir:即使用户在对话框中选择了其他目录,但对程序来说,当前目录总是对话框第一次打开时的目录。
. ofNoDereferenceLinks:如果用户选择的是快捷方式文件(.lnk),FileName属性是快捷方式文件本身,而不是快捷文件指向的文件。
. ofNoLongNames:不允许长文件名。
. ofNoReadOnlyReturn:不允许用户选择只读的文件,否则将显示一个警告框。
. ofNoTestFileCreate:保存文件时不进行写保护、磁盘满、驱动器门打开等检查。
. ofNoValidate:不对文件名中的字符进行合法性检查。
. ofOverwritePrompt:用于“另存为”对话框中,如果用户指定的文件名已存在,将显示一个警告框用来让用户选择是否要覆盖已有的文件。
. ofPathMustExist:用户输入的路径必须是已经存在的,否则将显示警告。
. ofReadOnly:选中“以只读方式打开”复选框。
. ofShareAware:对话框不理会所有的共享错误。
. ofShowHelp:对话框中将显示“帮助”按钮。
(8)Title属性
此属性用于设置对话框显示时的窗口标题。例如大多数据库程序都有还原数据库功能,其打开对话框的标题就可以设置为“打开还原文件”。
3.TOpenDialog组件的重要事件
OnCanClose----------当用户试图关闭对话框时将触发这个事件
OnFolderChange------当用户在对话框中改变、扩展或折叠了一个目录(也叫文件夹),将触发该事件
OnSelectionChange---当用户打开对话框、选择某个目录或文件、选择另一个过滤器、建立一个新的目录时将触
发这个事件
OnShow--------------当对话框调用Execute方法、并且对话框还未显示时触发此事件
OnTypeChange--------当用户在对话框中选择了另一个过滤器时,将发生这个事件
(1)OnCanClose事件
当用户试图关闭对话框时将触发这个事件。这样就有机会对用户输入的文件名进行检查。如果文件名不符合要求,就把CanClose参数设为False,表示不允许关闭对话框。
(2)OnFolderChange事件
当用户在对话框中改变、扩展或折叠了一个目录(文件夹),将触发该事件。在程序中可以利用此事件获取用户浏览过的目录。
(3)OnSelectionChange事件
当用户打开对话框、选择某个目录或文件、选择另一个过滤器或建立一个新的目录时将触发这个事件。
OnSelectionChange事件与OnFolderChange事件相比触发的概率比较高。
(4)OnTypeChange事件
当用户在对话框中选择了另一个过滤器时,将触发这个事件。在此事件中结合FilterIndex属性的使用,可以获取当前对话。
4.TOpenDialog组件的重要方法
TOpenDialog组件最重要的方法就是Execute方法。此方法能够显示对话框,以供用户设置文件路径及文件名。其使用方法如下:
OpenDialog1.Execute;
[转]TOpenDialog的更多相关文章
- delphi TOpenDialog
TOpenDialog procedure TForm1.Button1Click(Sender: TObject);begin with TOpenDialog.Create(ni ...
- C++ Builder中TOpenDialog控件的使用例子
源代码如下(opendlg_loaddata为TOpenDialog控件的name,ofAllowMultiSelect代表允许多选): opendlg_loaddata->Options &l ...
- DELPHI - How to use opendialog1 for choosing a folder? TOpenDialog, TFileOpenDialog
DELPHI - How to use opendialog1 for choosing a folder? On Vista and up you can show a more modern lo ...
- Delphi的打开文件对话框-TOpenDialog
1.TOpenDialog组件的典型用法 “打开”对话框是用TOpenDialog组件实现的,TOpenDialog组件是非可视组件. Filter属性用于设置文件过滤器,让对话框只列出特定类型的文件 ...
- BCB中选择文件对话框TOpenDialog过滤后缀名使用方法
BCB中使用TOpenDialog选择对话框时,直接OpenDialog->Execute()弹出的对话框是显示所有文件的,如果我们希望过滤指定的文件后缀名就需要在Execute()前做一些初始 ...
- delphi控件属性大全-详解-简介
http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...
- Delphi编程建议遵守的规范2---命名规范
1.1.形参命名建议 所有形参的名称都应当表达出它的用途.如果合适的话,形参的名称最好以字母a 为前缀,例如: procedure SomeProc(aUserName:string; aUserAg ...
- 软件打开时间、窗体透明度、背景色---《用delphi开发共享软件》-15.1任务管理器
1.计算软件启动了多长时间:用定时器,每分钟触发一次: procedure TFrmMain.tmCheckLegalTimer(Sender: TObject);Var Minutes:LongIn ...
- Rotate bitmap by real angle
tl;dr; Use GDI+ SetWorldTransform With WinAPI's SetWorldTransform you can transform the space of dev ...
随机推荐
- UVa 12709 && UVaLive 6650 Falling Ants (水题)
题意:给定 n 个长方体的长,宽,高,让你求高最大的时候体积最大是多少. 析:排序,用高和体积排序就好. 代码如下: #pragma comment(linker, "/STACK:1024 ...
- 我理解的 js 异步成长总结
本文是自己的理解,如果有错误的地方,还请各路大神指出 首先说下我最常用的 Promise getHandlePickupQrPromise() { // 定义返回 Promise对象 // Promi ...
- 洛谷 P3368 【模板】树状数组 2(区间修改点查询)
题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的值 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. ...
- git 文件回滚
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file.场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第 ...
- redis相关配置
redis相关配置1.yum 源码 rpm yum 快速,间接,高效,解决依赖关系,(自动安装到某个路径,不可控),通过yum安装的软件查询命令 rpm -ql nginx yum源的软件包可能版本非 ...
- _bzoj1059 [ZJOI2007]矩阵游戏【二分图匹配】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1059 保存匈牙利模板. #include <cstdio> #include & ...
- Struts2 表单提交与execute()方法的结合使用
1.创建web项目,添加struts2支持的类库,在web.xml中配置struts2过滤器. 2.创建名为UserAction的Action对象,并在其中编写execute()方法,代码如下所示: ...
- iOS 集成银联支付(绕过文档的坑,快速集成)-转
本文是投稿文章,作者:南栀倾寒当初集成支付宝的时候,觉得见了这么丑的代码,加上这么难找的下载地址,在配上几乎为零的文档,寒哥就要吐血了. 下午去集成银联,才知道血吐的早了. 下载地址:https:// ...
- 安装Kube
安装Docker yum install -y docker 加速Docker DOCKER_MIRRORS="https://5md0553g.mirror.aliyuncs.com&qu ...
- python的des和3des加解密
1.加密: pyDes.des(key, [mode], [IV], [pad], [padmode]) pyDes.triple_des(key, [mode], [IV], [pad], [pad ...