delphi选择文件对话框TOpenDialog组件的用法

作者:小菜 更新时间:2025-02-26 点击数:
简介:前往Delphi专题 在Delphi中我们需要打开一个文件或选择一个文件可以用到 TOpenDialog组件,下面来介绍一下 TOpenDialog 的具体用

【菜科解读】

前往Delphi专题

在Delphi中我们需要打开一个文件或选择一个文件可以用到 TOpenDialog组件,下面来介绍一下 TOpenDialog 的具体用法.

TOpenDialog在Delphi 的 Dialogs 下面

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;

delphi,选择,文件,对话框,TOpenDialog,组

oppo手机如何文件互传

今天给各位分享oppo手机怎么文件互传?_oppo手机怎么进行互传?,其中也会对大家所疑惑的内容进行解释,如果能解决您现在面临的问题,别忘了关注多特软件站哦,现在开始吧!oppo手机怎么文件互传?要实现在电脑和手机之间通过同一个QQ账号互传文件,可以通过以下步骤将电脑中的照片传输到手机中。

以下是详细的操作方法:1. **登录电脑端的QQ**:打开电脑上的QQ应用并登录你的账号。

在主页面中找到“我的设备”下的“我的Android手机”。

2. **选择照片进行传输**:点击进入“我的Android手机”的聊天页面。

接着,点击左下角的图片图标,进入图片选择页面。

在这里,你可以选择需要发送的照片,选好后点击“打开”,照片就会发送到手机QQ中。

3. **接收照片到手机**:在手机端(以OPPO手机为例),确保你已经登录了同一个QQ账号。

打开手机QQ,找到并点击“我的电脑”对话框。

此时,你应该能够看到从电脑端发送过来的照片。

你可以直接点击保存到手机相册中。

4. **反向操作**:同样地,如果你想从手机传输文件到电脑,也可以通过这种方式实现。

只需在手机端选择文件发送给“我的电脑”,然后在电脑端接收即可。

通过以上步骤,你可以轻松地在电脑和手机之间传输文件。

无论是图片、文档还是其他类型的文件,都可以使用这种方法进行互传。

希望这些步骤对你有所帮助!oppo手机怎么进行互传?首先,确保发送方和接收方的手机都已打开下拉状态栏。

接着,在状态栏中找到并点击【OPPO互传】按钮,将其打开。

通过以上步骤,您可以轻松启动OPPO互传功能,准备进行文件传输。

请确保双方手机都已完成上述操作,以便顺利进行后续步骤。

关于oppo手机怎么文件互传?_oppo手机怎么进行互传?的内容小编就阐述到这里了,希望本篇的信息能够解答大家目前的疑问,想要更多最新的内容记得关注多特软件站哟!更多全新内容敬请关注多特软件站(www.duote.com)!

Delphi与VC共享接口和对象,互相通信、互相操作实例分享

我经常会用 Delphi 写一些工具和应用,为了扩展方便,大部分都会做成插件形式。

迫于某些原因,我的插件不但不用其他开发工具来完成,比如 VC。

于是有个大问题需要解决:如何让 D 和 VC 互相通信、互相操作。

最普遍的做法,无非是定义一些方法,VC 写 Dll 导出这些方法,D 载入 Dll 调用。

但问题是稍大点规模的应用,这种方式非常麻烦,也不够直观。

于是花了点时间研究 D 和 VC 之间共享接口和对象的一些方法,现将要点共享发布出来,希望对大家有用。

基础事项:在 D 和 VC 中,要共享的接口、对象中的方法的调用约定必须为 stdcall1. class 的 使用Delphi 和 VC 中都使用抽象类,将方法都定义为纯虚方法,成员的声明顺序请保持一致。

需要注意的是 Delphi 的类方法。

一般的静态类方法在 VC 中直接跳过即可,虚的类方法在 VC 定义为一般的虚函数即可。

D:TTestObj=classpublicclassprocedureFoo;procedureUpdate(Intf:ITestIntf);virtual;stdcall;abstract;procedureFree;virtual;stdcall;abstract;end;VC:classITestObj{public:virtualvoid__stdcallUpdate(ITestIntf*pIntf)=0;virtualvoid__stdcallFree()=0;};2. 接口D 的 IInterface / IUnknown,在 VC 中定义为interface /*class*/ : public IUnknown,成员的声明顺序请保持一致注意,D 中接口支持属性定义,但是 VC 不支持,因此 D 接口中的属性定义请放在声明的最后如果接口的实例化是在 VC 中,有点有意思的小细节要注意,详见代码的注释D:ITestIntf=interface[‘{781E6521-8768-4ADA-B843-445ECE548C27}‘]functionGetText:PAnsiChar;stdcall;procedureSetText(AValue:PAnsiChar);stdcall;functionGetValue:Integer;stdcall;procedureSetValue(AValue:Integer);stdcall;propertyText:PAnsiCharreadGetTextwriteSetText;propertyValue:IntegerreadGetValuewriteSetValue;end;VC:interfaceDECLSPEC_UUID("781E6521-8768-4ADA-B843-445ECE548C27")ITestIntf:publicIUnknown{public:virtualLPCSTR__stdcallGetText()=0;virtualvoid__stdcallSetText(LPCSTRlpszMsg)=0;virtualint__stdcallGetValue()=0;virtualvoid__stdcallSetValue(intvalue)=0;};示例代码中,在 D 里实现了一个接口提供给 VC DLL,在 VC DLL 里实现了一个接口和一个类提供给 D 里使用。

代码下载 Delphi,与,共享,接口,和,对象,互相,通信,、,我,

加入收藏
               

delphi选择文件对话框TOpenDialog组件的用法

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录