C++Builder文件,目录和驱动器
- 格式:pdf
- 大小:1.69 MB
- 文档页数:33
科学技术与工程6卷C++Builder与Matlab混合编程的两种方法杜高鹏翟正军1*徐隽(西北工业大学软件学院,西安710065;dgp_2003@126.com;西北工业大学计算机学院1,西安710072)摘要详细论述了C++Builder与Matlab混合编程的两种实现方法。
一是在C++Builder中使用COM技术调用Matlab数据。
二是脱离Matlab环境,通过动态连接库方式实现对Matlab工具箱函数的调用。
分别给出一个详细的例子。
这两种方法都充分发挥了C++Builder与Matlab的优势,为科学研究和工程技术提供了更强的技术支持。
关键词C++BuilderMatlabCOM组件Mediva软件平台DLL中图法分类号TP312文献标识码BMatlab是一个高度集成的系统,它把数值计算和可视化环境集成到一起,非常直观,而且提供了大量的函数,使其越来越受到人们的喜爱。
它集科学计算、图象处理、声音处理于一体,具有极高的编程效率。
近年来,Matlab已经从最初的“矩阵实验室”渗透到科学与工程计算的多个领域,在自动控制、信号处理、神经网络、模糊逻辑、小波分析等多个方向,都有着广泛的应用。
BorlandC++Builder是一种新颖的可视化编程语言,它既具有C++语言的灵活性、高效性,又具有可视化编程的便利性,功能丰富强大,界面友好,使用十分方便,但是在矩阵运算、数值分析、工程计算等方面,功能则稍嫌不足;在工程应用中,我们一般用C++Builder语言编写应用程序,实现交互界面、数据采集和端口操作等,但C++Builder在数值处理分析和算法工具等方面,其效率远远低于Matlab语言。
在准确方便地绘制数据图形方面,Matlab语言更具有无可比拟的优势。
此外,Matlab还提供功能强大的工具箱。
但Matlab的缺点是不能实现端口操作和实时控制。
因此,若能将两者结合运用,实现优势互补,将大大提高工作效率。
CAN Bus Driver Developer’s Manual(Wince 4.2 Operating System)深圳英贝德科技有限公司Revision History一、重新编写CAN驱动1.编写CAN 总线的驱动程序,驱动程序编写可以使用Platform Builder 4.2或者是eMbedded Visual C++ 4.0,在此我们使用的是Platform Builder 4.2,首先进入你建立的Platform 中,接着在Platform Builder 4.2中新建工程文件,如图1所示:图 1单击New Project or File…菜单命令,弹出如下图2所示界面:图 2单击WCE Dynamic-Link Library 选项,在右则的Project name 输入框中输入驱动文件名CAN 然后点击OK按钮。
接着出现图3所示对话框:图 3选定A simple Windows CE DLL project选项,然后单击Finish按钮,进入Platform Builder 4.2主界面,将其目录展开可见到如图4所示的窗口:图 4双击CAN.cpp 图标,即可进行CAN驱动源程序的编写。
在Windows CE操作系统中,驱动程序都是以动态链接库文件存在的。
我们编写的驱动程序为流接口驱动程序,因此在该动态链接库文件内要定义标准的流接口函数。
其标准流接口函数有:CAN_Init()CAN_Deinit()CAN_Open()CAN_Close()CAN_IOControl()CAN_PowerUp()CAN_PowerDown()CAN_Read()CAN_Seek()CAN_Write()以上每个函数的功能如其函数名称所示。
它们为标准的流接口函数,具体的功能如果没有必要,也就只需定义其函数不用具体实现,在我们的驱动程序中主要完成的代码编写有CAN_Init()、CAN_Deinit()、CAN_Open()、CAN_Close()、CAN_IOControl()、CAN_Read()、CAN_Write()。
基于WinDriver和C++Builder的高速实时数据采集程序张艳;高一栋【摘要】本文介绍了一种高效的设备驱动程序开发软件WinDriver,利用该软件,可以便捷地在Windows操作系统的用户模式下用C++Builder编写硬件设备驱动程序,实现对PCI总线高速实时数据的采集。
在实际应用中,程序稳定,可靠性高。
%An high efficiency software WinDriver for developing device driver is presented. By using this software, the hardware device driver can be conveniently written in C + + Builder in User Mode of Windows operating system to implement acquisition of PCI bus high speed real-time data. The driver is stable and reliable in practical engineering application.【期刊名称】《火控雷达技术》【年(卷),期】2012(000)004【总页数】3页(P48-50)【关键词】WinDriver;PCI驱动程序;C++Builder【作者】张艳;高一栋【作者单位】西安电子工程研究所,西安710100;西安电子工程研究所,西安710100【正文语种】中文【中图分类】TN919;TP2741 引言在某信号处理系统应用中,需要数据板与计算机之间建立硬件传输通道,将处理输出的数据实时地传输到计算机中,以便于进行显示、存储及做其他的后续处理。
同时,计算机使用的Windows操作系统,应用程序工作在“用户模式”下,需要设计人员编写设备驱动程序实现对硬件设备的访问。
2 用WinDriver编写PCI驱动程序2.1 WinDriver的功能和特点图1 WinDriver体系结构图目前,开发Windows环境下常用的设备驱动程序的工具主要有DDK(Device Driver Kit)和Win-Driver。
一、PB应用程序打包生成不用安装PB空间管理您的位置: ITPUB个人空间»elephantcalf的个人空间»日志淡淡的哀愁莫名的忧郁人,没有受不了的苦,只有享不了的福。
PB应用程序打包生成不用安装PB上一篇 / 下一篇 2007-07-02 00:00:00 / 个人分类:技术查看( 133 ) / 评论( 1 ) / 评分( 0 / 0 )将注册表的一些路径配置好,并且重新定义数据源,还有一些必需的.dll也要拷到响应的目录我今天也遇到这个问题了,原因是你没有将sql的驱动文件在系统中注册!你需要在客户机上安装 sql客户端!需要文件:dbcon7.dll,dbctrs7.dll,dblgen7.dll,dbodbc7.dll,dbserv7.dll,dbeng7.exe我是用PB连接oracle数据库,如何打包,并在其他没有安装pb和oracle数据库的机器上运行!!!!!!!不管你用什么,都得需要oracle的支持,不知道你用的pb几,在pb9.0里自带打包程序,很不错,很不错,你也可以尝试一下第三方的打包程序,很多!setup factory 6.0.0.3 完全版一直用这个很不错的installshield 或者wise打包的时候需要用到那些dll?----------------------------与你的PB版居泄?PBVM80.DLL :PowerBuilder 虚拟机,必需PBTRA80.DLL :用来数据库跟踪调用,可选PBRTC80.DLL:对Rich Text 的支持,可选PBMSS80.DLL:Microsoft SQL Server数据库服务器的直连接口(Native databaseinterfaces),使用MSS必备的DLL,如果使用别的DBMS,采用相应的其他DLL PBDWE80.DLL:DataWindow 引擎,如果使用了 DataWindow和 Report,必需NTWDBLIB.DLL:DBMS 客户端链接库,负责执行与服务器的连接,必需DBNMPNTW.DLL:Named Pipes Network Library,网络连接方式之一DBMSSOCN.DLL:TCP/IP Network Library,网络连接方式之二如果不是使用专用接口,而是采用ODBC,则另需要:PBODB80 .DLLPBODB80 .INidbsvr7.0.exe注册表里写入:nowdir=GetCurrentDirectory()RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","Driver",RegString!,n owdir+"dbodbc8.dll")RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","DatabaseFile",RegStr ing!,nowdir+"GSMdata.db")RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","DatabaseName",RegStr ing!,nowdir+"GSMdata")RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","AutoStop",RegString! ,"Yes")RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","Integrated",RegStrin g!,"No")RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","Debug",RegString!,"N o")RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","DisableMultiRowFetch ",RegString!,"No")RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","UID",RegString!,"No") RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIGSMdata","PWD",RegString!,"No") RegistrySet("HKEY_CURRENT_USERSoftwareODBCODBC.INIODBC DataSources","GSMdata",RegString!,"Adaptive Server Anywhere 7.0") SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "Connectstring='DSN=GSMdata;UID=GSM;PWD=mobile'" connect using sqlca;////1 这可以借助于InstallShield安装程序的帮助,把自己机器上的ODBC数据源定义 ->导入到安装程序中 ->安装完毕,由安装程序来帮你把自己机器上的ODBC数据源定义复制到被安装的机器上。
MGBuilder用户操作手册Rev. 2.1上海麦杰科技有限责任公司Shanghai Magus Technology Co., Ltd.2004年12月1.1 概述 (4)1.2 内容介绍 (4)2 MGBuilder配置及使用说明 (5)2.1内容介绍 (5)2.2 配置MGBuilder的使用环境 (5)2.2.1 Windows系统 (5)2.2.2 Unix及Linux系统 (5)2.3 MGBuilder的目录及文件结构 (6)2.4 MGBuilder功能概述 (6)2.5 启动MGBuilder (7)2.6 使用MGBuilder (7)2.6.1文件菜单 (7)2.6.2 编辑菜单 (8)2.6.3 查看菜单 (8)3 绘制及编辑图形元素 (10)3.1内容介绍 (10)3.2 线、多线 (10)3.2.1 线、多线的绘制 (10)3.2.2 线、多线的编辑 (10)3.3 矩形 (11)3.3.1 矩形的绘制 (11)3.3.2 矩形的编辑 (11)3.4 多边型 (11)3.4.1 多边形的绘制 (11)3.4.2 多边形的编辑 (11)3.5 椭圆 (11)3.5.1 椭圆的绘制 (11)3.5.2 椭圆的编辑 (12)3.6 圆弧 (12)3.6.1 圆弧的绘制 (12)3.6.2 圆弧的编辑 (12)3.7 文本 (12)3.7.1 文本的绘制 (12)3.7.2 文本的编辑 (13)3.8 采集点 (13)3.8.1 采集点的绘制 (13)3.8.2 采集点的编辑 (14)3.9 按钮 (14)3.9.1 按钮的绘制 (14)3.9.2 按钮的编辑 (15)3.10 时间 (15)3.10.1 时间的绘制 (15)3.10.2 时间的编辑 (15)4.1 内容介绍 (16)4.2 插入图像 (16)4.3 插入棒状图 (17)4.5 插入趋势 (17)5 图库的使用 (18)5.1内容介绍 (18)5.2插入图库元素 (18)5.3 添加图库对象 (19)6 设置图形属性 (20)6.1 内容介绍 (20)6.2 设置对象的颜色和填充方式 (20)6.3 设置对象的线型和线宽 (23)6.4 设置字体 (23)6.5 设置事件 (23)6.5 设置事件 (24)6.6 设置图形属性 (24)7 图形工具的使用 (25)7.1 内容介绍 (25)7.2 图形镜像 (25)7.2.1 左右镜像 (25)7.2.2 上下镜像 (25)7.3 旋转 (26)7.3.1 顺转90度 (26)7.3.2 逆转90度 (26)7.4 对齐 (26)7.4.1 左对齐 (26)7.4.2右对齐 (26)7.4.3上对齐 (27)7.4.4下对齐 (27)7.4.5 垂直对齐 (27)7.4.6 水平对齐 (27)7.5 组合 (28)7.5.1 组合 (28)7.5.2 取消组合 (28)8 使用帮助 (29)附录A MGBuilder快捷键速查 (30)附录B DSP文件格式 (31)附录C 使用中可能遇到的问题 (38)1 简介1.1 概述MGBuilder组态工具是专门为自动控制、控制系统仿真而设计的图形化组态工具,它具有图形编辑功能及动态定义功能,用户使用它可以很方便地绘制和仿真各种控制系统的过程图形,同时与图形浏览工具MGViewer配合使用,无需再进行复杂的二次编程,就可以实现各种控制的界面仿真工作,大大减少了为了追求仿真系统的形似所花费的时间,加快仿真系统的开发进度。
C++ Builder 初学问与答(一)第一部分:基础入门1.窗体1)问:Windows的编程就是在窗体的基础上实现的,C++Builder是怎样处理窗体的呢?答:窗体的一部分功能通过窗体的属性来实现,窗体的属性非常多,这里只对其中比较重要的属性进行介绍。
1.ActiveControl指定窗体上的某个组件为输入焦点。
如下面的语句将窗体上的Label1组件成为输入焦点:ActiveControl=Label1。
在同一时时刻,应用程序只能有一个输入焦点。
2.BorderIcons用来设定标题栏上出现哪些系统图标。
它是一个集合,可以设成以下几个类型:最大化按钮(biMaximize)、最小化按钮(biMinimize)、帮助按钮(biHelp)和系统菜单(biSystemMenu)。
3.Icon属性用来指定当窗体最小化时显示的图标。
4.KeyPreview属性为true时,表示击键事件发生时先传给窗体,然后再传给有输入焦点的组件上,相当于窗体截获了原本属于组件的事件。
缺省值为false,表示击键事件只送到当前有输入焦点的组件上。
5.Menu属性用来指定窗体的主菜单。
6.Visible属性用来确定窗体是否可见。
此外还有一些运行时态属性,这些属性只有在程序运行的时候才能通过编程访问。
这种属性主要有:Active属性用来确定窗体是否获得输入焦点。
ActiveMDIChild这个函数将返回当前活动的子窗体。
DropTarget属性用来指定窗体是否是拖放操作的对象。
Parent属性用来设定包含窗体的窗口控件,通常是另一个窗体。
如果窗体没有包含它的控件,那么它的Parent属性为nil。
2)问:Windows窗体有很多样式,比如对话框,弹出窗口。
如果我要控制窗体的边界样式,应该怎么办?答:属性BorderStyle可以指定窗体边界的外观和行为。
它一共有六种可能的取值。
bsDialog表示大小不可变的标准的对话框边界。
cbuilder listview控件的基本用法ListView控件是C++ Builder中常用的列表显示控件之一,它可以用于展示大量数据,并支持多列和多行显示。
ListView控件具有丰富的功能和样式设置,可以满足各种需求。
一、导入ListView控件在使用ListView控件前,首先需要添加Ctrls单元,该单元中定义了ListView控件的相关类和接口。
二、创建ListView控件1. 使用C++ Builder的可视化设计工具拖拽一个ListView控件到窗体上;2. 在代码中使用TListView类创建控件。
三、设置ListView控件的基本属性1. 设置ViewStyle:决定ListView控件的外观样式,可以设置为vsIcon、vsSmallIcon、vsList、vsReport和vsReportStyles;2. 设置ReadOnly属性:决定用户是否可以编辑ListView中的内容;3. 设置Columns属性:可以通过添加TListColumn对象来定义ListView的列;4. 设置ColumnClick属性:决定是否支持点击列标题进行排序;5. 设置GridLines属性:决定是否显示网格线;6. 设置HideSelection属性:决定是否隐藏选中项;7. 设置MultiSelect属性:决定是否可以多选;8. 设置ShowColumnHeaders属性:决定是否显示列标题栏;9. 设置ViewStyle属性:决定ListView的外观样式。
四、添加数据到ListView控件1. 使用Items属性添加行;2. 使用SubItems属性添加行的具体数据;3. 使用Columns属性控制列数和列标题;4. 使用AddItem方法、Add方法、InsertItem方法添加数据。
五、获取和处理ListView控件的事件1. OnClick事件:当用户点击ListView控件时触发;2. OnDblClick事件:当用户双击ListView控件时触发;3. OnEditing事件:当用户开始编辑ListView的某一项时触发;4. OnEdited事件:当用户完成编辑ListView的某一项时触发;5. OnColumnClick事件:当用户点击列标题时触发,可以用于对ListView控件的行进行排序;6. OnSelectItem事件:当选中ListView控件中某一项时触发;7. OnMouseDown事件:当鼠标在ListView控件上按下时触发;8. OnMouseUp事件:当鼠标在ListView控件上弹起时触发。
1引言
在为某公司开发仪器仪表自动检测系统的项目中,笔者主要负责实现输出证书模块。整个仪器仪表
自动检测系统是用BorlandC++Builder开发的,
证书模块的任务是把测量出来的数据输出到Word证书模板中,并检查无误后打印出来。检测模块是由某研究所开发完成的,该模块在检测仪器中具有高效率、高精确度等优点,但是由于当初时间的紧迫性,系统的最终结果只保存在Txt文本中,这对于部门规范统一带来了很大的困难。为了改变这种情况,我们决定将测试结果写入事先做好的Word证书模板中。要利用C++Builder来完成这项工作,只有两种方法比较可行:①用C++Builder的OLE(ObjectLinkingandEmbedding,对象链接和嵌入)技术连接Access数据库,实现从数据库中读出测试数据到Word文档中。②通过C++Builder的Office组件面板中的WordApplication、WordDocument、WordFont等组件来实现。由于先开发的程序没有使用数据库,并且其所有的数据都只是保存在Txt文件中,为了保持程序的完整性,我们只能选择第二种方法,利用Office组件来生成证书2用Office组件生成证书2.1具体思路因为待输出的内容根据仪器所属单位要求的不同,它的测试参数的项数也有所不同,为了实现自动选择项数,我们利用主程序中的Bool数组来实现增加或删除测试项,如果该测试项的Bool值为True,则选中该项,如为False,则删除该项。然后将测试所得的数据输出到Word证书模板对应的位置中去,最终打印出来。具体的思路如下所示:(1)打开Word应用程序,调用证书模板;(2)填写仪器的属性,如生产商、检测日期、仪器
所属单位等;
(3)生成页眉和页脚;
(4)输出测试所得的数据,将数据写入模板对应的表格中;
利用CBuilder中的Office组件来生成证书董常1,潘柳2(1.重庆邮电大学自动化学院,重庆400065;2.西南电子技术研究所,四川成都610036)摘要:针对目前测试数据生成规范化证书的要求,详细的阐述了利用C++Builder中的Office组件自动调用Word文档的方法,该方法为测试数据的输出提供了极大的便利,并且在现代化的测试计量技术中也具有广阔的实用前景。通过对实现Word调用的两种方法的比较,表述了利用Word调用生成证书的具体过程。该方法是对仪器仪表自动测量系统的一个完善,不仅较大地提高了工作效率,而且还能节约一定的成本。关键词:C++Builder;Word文档;WordApplication组件;源代码
第6章文件、目录和驱动器通常,文件、目录和驱动器的管理是由操作系统来完成的。
但是,对文件、目录和驱动器的一些具体操作却要通过编程来实现。
在C ++B u i l d e r集成开发环境中编程可以方便地实现对文件、目录和驱动器的操作。
在界面方面,C ++B u i l d e r提供了一些标准的文件对话框。
对于具体的文件、目录和驱动器的操作,可以通过C ++B u i l d e r提供的丰富的函数来实现。
下面首先介绍标准的文件对话框,然后按字母顺序介绍了文件操作、目录操作、驱动器操作和文件名操作方面常用的函数,最后还有一些例程、方法和技巧。
在例程中,对 C ++B u i l d e r 提供的与文件、目录和驱动器有关的组件也进行了说明。
6.1 文件6.1.1 C标准文件类型文件的分类有多种方式,比如:缓冲文件和非缓冲文件;二进制文件和文本文件等。
这里所说的C标准文件是缓冲文件,可以支持两种文件类型:二进制文件和文本文件。
C标准文件类型是在头文件s t d i o.h中声明了的。
标准文件类型是通过文件指针来进行存取的,它是文件类型的变量并用如下方法声明:FILE* fp;这个文件指针,指向为每个使用的文件在内存中开辟的一个区域,用来存放文件的有关信息(如文件名称、文件的状态以及文件的当前位置等参数)。
这些信息是保存在一个结构类型的变量中。
该结构体的类型是由系统定义的,取名为F I L E,程序中只需要声明指向该结构的指针即可通过它访问相应的文件。
具体对C标准文件类型(不能称其为类,只能称为类型)的使用不外乎下面一些内容:1. 文件的打开与关闭文件打开函数:FILE *fopen(const char *filename, const char *mode);FILE *_wfopen(const wchar_t *filename, const wchar_t *mode);// 重新FILE *freopen(const char *filename, const char *mode, FILE *stream);打开文件FILE *_wfreopen(const wchar_t *filename, const wchar_t *mode, FILE *stream);文件关闭函数:int fclose(FILE *stream);2. 文件的读写二进制文件的读写函数:size_t fread(void *ptr, size_t size, size_t n, FILE *stream);size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);文本文件的读写函数:char *fgets(char *s, int n, FILE *stream);wchar_t *fgetws(wchar_t *s, int n, FILE *stream); // Unicode versionint fputs(const char *s, FILE *stream);int fputws(const wchar_t *s, FILE *stream);int getc(FILE *stream);wint_t getwc(FILE *stream);int fputc(int c, FILE *stream);wint_t fputwc(wint_t c, FILE *stream);3. 文件的定位int fseek(FILE *stream, long offset, int whence);long int ftell(FILE *stream);int fsetpos(FILE *stream, const fpos_t *pos);int fgetpos(FILE *stream, fpos_t *pos);4. 文件的状态检查int feof(FILE *stream);// 检查文件是否结束int ferror(FILE *stream);// 文件操作是否出错void clearerr(FILE *stream);// 清除文件的所有状态以上C标准文件的操作函数,对于C ++程序员来说,不应该有问题。
对于它们的使用方法,用户可以参考C ++B u i l d e r的联机帮助。
6.1.2 C++流式文件类为了使文件的使用更符合C ++类的概念,C ++中将对文件的操作封装在流式系列类中。
在这个流式系列类中,不光包括文件的操作类,还包括对其他输入、输出设备进行读写的类,比如c i n、c o u t等。
C ++流式文件类主要包括:f s t r e a m、i f s t r e a m和o f s t r e a m。
分别对应文件的读写、读和写。
并支持文本和二进制文件。
对C ++流式类的使用读者可以参考标准C ++语言,或C ++B u i l d e r的联机帮助。
6.1.3 非缓冲文件以上介绍的文件类型都是用于缓冲文件系统,即高级磁盘输入输出系统,系统为文件分配文件指针,并通过指针访问该文件。
而非缓冲文件系统则提供了低级磁盘输入输出通道,它没有任何文件指针,使用非缓冲文件系统时,不是靠文件指针访问文件,而是用一个整数代表一个文件,这个整数称为文件句柄(H F I L E)。
对于非缓冲文件的使用读者可以参考Windows API帮助,或C ++B u i l d e r的联机帮助。
这里需要说明的是,C ++B u i l d e r和Wi n d o w s都提供了对非缓冲文件的操作,在使用时,一定要保持前后一致,例如,你在开始打开文件时使用的是o p e n函数(C ++B u i l d e r提供),则在后面的关闭文件时应该使用c l o s e,而不是_ l c l o s e函数。
6.2 文件对话框组件C ++B u i l d e r的D i a l o g组件夹中提供了一些文件对话框组件,这些组件的用法简单,而且可以使应用程序的界面统一、美观。
具体如下:1. OpenDialog通过O p e n D i a l o g组件可以选择并打开文件。
在显示“打开文件”对话框之前,要对O p e n D i a l o g组件的一些属性进行设置:1) Filter 文件类型过滤器。
比如下面的代码在文件类型组合框中增加了. T X T和. P A S两种类型的文件过滤器:";OpenDialog1->Filter ="Text files (*.txt)|*.TXT|Pascal files (*.pas)|*.PAS 此外,在同一个过滤器中,还可以有多种文件后缀:";OpenDialog1->Filter ="Pascal files|*.PAS;*.DPK;*.DPR2) FilterIndex 设置对话框一打开时选中的文件过滤器。
数值从1开始计算。
3) InitialDir 设置对话框打开时定位的目录。
如果默认或指定目录无效,则指向当前工作目录。
4) Options 设置打开对话框的出现模式和操作模式。
属性值的类型定义如下:enum TOpenOption { ofReadOnly, ofOverwritePrompt, ofHideReadOnly, oChangeDir, ofShowHelp, ofNoValidate, ofAllowMultiSelect, ofExtensionDifferent,of P at h M u st Exist,o fFileMustExist, ofCreatePrompt, ofShareAware,ofNoReadOnlyReturn, ofNoTestFileCreate,ofNoNetworkButton, ofNoLongNames, ofOldStyleDialog,ofNoDereferenceLinks,ofEnableIncludeNotify, ofEnableSizing };typedef Set<TOpenOption, ofReadOnly, ofNoDereferenceLinks> TOpenOptions;具体举例如下:O p e n P i c t u r e D i a l o g1->O p t i o n s.C l e a r();OpenPictureDialog1->Options << ofFileMustExist << ofHideReadOnly << o f N o C h a n g e D i r;打开对话框一出现时,“以只读方式打开( R)”复选框被选中,并且可以一次选择多个文件,而且文件必须存在。
5) Title 设置对话框标题中显示的内容。
对话框显示后,当按下“打开( O)”按钮后,可以读取F i l e N a m e属性的值获得用户最后选择的文件名。
如果在打开对话框前O p t i o n s属性中设置了o f A l l o w M u l t i S e l e c t,也就是可以一次选择多个文件,则通过读取F i l e s->S t r i n g s[I]的值可以获取所有选中的文件名。
其中I为一个整型循环变量,从0开始递增到F i l e s->C o u n t-1。
2. SaveDialog通过S a v e D i a l o g组件可以选择并保存文件。
S a v e D i a l o g组件的属性和使用方法与O p e n D i a l o g组件非常相似。
3. OpenPictureDialog通过O p e n P i c t u r e D i a l o g组件可以选择并打开图形文件。
O p e n P i c t u r e D i a l o g组件具体用法基本同O p e n D i a l o g组件,只是对话框在显示的时候还多了一个可以预览图形的矩形区域。
如果选中的图形文件可以被T P i c t u r e类识别,则图形会在预览区域显示。
一般T P i c t r u e类可以识别. B M P、. I C O、. W M F和. E M F等类型的图形文件。
4. SavePictureDialog通过S a v e P i c t u r e D i a l o g组件可以选择并保存图形文件。
S a v e P i c t u r e D i a l o g组件的属性和使用方法与S a v e D i a l o g组件和O p e n P i c t u r e D i a l o g组件非常相似。