转自: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的更多相关文章

  1. delphi TOpenDialog

        TOpenDialog     procedure TForm1.Button1Click(Sender: TObject);begin  with TOpenDialog.Create(ni ...

  2. C++ Builder中TOpenDialog控件的使用例子

    源代码如下(opendlg_loaddata为TOpenDialog控件的name,ofAllowMultiSelect代表允许多选): opendlg_loaddata->Options &l ...

  3. 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 ...

  4. Delphi的打开文件对话框-TOpenDialog

    1.TOpenDialog组件的典型用法 “打开”对话框是用TOpenDialog组件实现的,TOpenDialog组件是非可视组件. Filter属性用于设置文件过滤器,让对话框只列出特定类型的文件 ...

  5. BCB中选择文件对话框TOpenDialog过滤后缀名使用方法

    BCB中使用TOpenDialog选择对话框时,直接OpenDialog->Execute()弹出的对话框是显示所有文件的,如果我们希望过滤指定的文件后缀名就需要在Execute()前做一些初始 ...

  6. delphi控件属性大全-详解-简介

    http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...

  7. Delphi编程建议遵守的规范2---命名规范

    1.1.形参命名建议 所有形参的名称都应当表达出它的用途.如果合适的话,形参的名称最好以字母a 为前缀,例如: procedure SomeProc(aUserName:string; aUserAg ...

  8. 软件打开时间、窗体透明度、背景色---《用delphi开发共享软件》-15.1任务管理器

    1.计算软件启动了多长时间:用定时器,每分钟触发一次: procedure TFrmMain.tmCheckLegalTimer(Sender: TObject);Var Minutes:LongIn ...

  9. Rotate bitmap by real angle

    tl;dr; Use GDI+ SetWorldTransform With WinAPI's SetWorldTransform you can transform the space of dev ...

随机推荐

  1. ES6躬行记(24)——代理和反射

    代理和反射是ES6新增的两个特性,两者之间是协调合作的关系,它们的具体功能将在接下来的章节中分别讲解. 一.代理 ES6引入代理(Proxy)地目的是拦截对象的内置操作,注入自定义的逻辑,改变对象的默 ...

  2. zoj 2760 How Many Shortest Path【最大流】

    不重叠最短路计数. 先弗洛伊德求一遍两两距离(其实spfa或者迪杰斯特拉会更快但是没必要懒得写),然后设dis为st最短距离,把满足a[s][u]+b[u][v]+a[v][t]==dis的边(u,v ...

  3. Redis操作命令大全

    一.key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符  *.?.[] (2)randomkey:返回随机key (3)type key:返回key存储的类型 ...

  4. Jewel Magic UVA - 11996 || bzoj1014: [JSOI2008]火星人prefix

    Jewel Magic UVA - 11996 这是一道用splay/非旋treap做的题(这里用的是非旋treap) 1/2/3是splay/非旋treap的常规操作.对于操作4,可以用哈希法求LC ...

  5. ACM_求N^N的最高位数

    Leftmost Digit Time Limit: 2000/1000ms (Java/Others) Problem Description: 给定一个正整数N,你应该输出N ^ N的最左边的数字 ...

  6. 影响TCP连接寿命的因素

    NAT超时 大部分移动无线网络运营商都在链路一段时间没有数据通讯时,会淘汰 NAT 表中的对应项,造成链路中断.NAT超时是影响TCP连接寿命的一个重要因素(尤其是国内),所以客户端自动测算NAT超时 ...

  7. Oracle中的日期数据类型

    TimeStamp日期类型 TimeStamp数据类型用于存储日期的年.月.日,以及时间的小时.分和秒,其中秒值精确到小数点后6位,该数据类型 同时包含时区信息.systimestamp函数的功能是返 ...

  8. 《基于Node.js实现简易聊天室系列之总结》

    前前后后完成这个聊天室的Demo花了大概一个星期,当然一个星期是仅仅指编码的工作.前期的知识储备是从0到1从无到有,花费了一定的时间熟悉Node.js的基本语法以及Node.js和mongoDB之间的 ...

  9. [转]Sublime Text操作

    原文地址:http://www.madongdong.me/sublime-text3%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/ 作者:马东东 前言(Prologue) ...

  10. QT入门学习2

    QT获取窗口几何布局有2类函数: 1.包含框架:x().y().frameGemetry().pos().move()... 2.不包含框架:geometry().width().height().w ...