APP下载

基于C++BUILDER 的全自动综合验光仪上位机设计

2015-11-28

山西电子技术 2015年1期
关键词:窗体控件全自动

温 佳

(中北大学,山西 太原 030051)

1 C++builder 介绍

C++Bulider6 是Borland 公司出品的一种基于C++的快速开发工具。它不仅易学易用,而且功能强大、目标程序效率高。

C++Builder6 具有快速的可视化开发环境,充分利用已经发展成熟的Delphi 的可视化组件库(visual component library,VCL),只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置一下它的外观,就可以快速地建立应用程序界面;C++Builder 内置了100 多个完全封装了Windows 公用特性且具有完全可扩展性(包括全面支持ActiveX 控件)的可重用控件;C++Builder 具有一个专业C++开发环境所能提供的全部功能:快速、高效、灵活的编译器优化,逐步连接,CPU 透视,命令行工具等。它实现了可视化的编程环境和功能强大的编程语言(C++)的完美结合。

2 MSComm 控件

MSComm 作为一个串行通讯控件为程序员串口通讯编程节省了很多时间。我们利用MSComm 控件进行简单的设置就可以方便地进行串口通信[1]。因为MSComm 控件为第三方控件,首先我们需要在C++Builder6 内安装MSComm控件。安装好之后,可以在ActiveX 菜单下发现一个小电话图标。此时我们将该图标拖到窗体(FORM)上。

3 MSComm 控件设置方法

双击该图标设置其属性,这里我们设置CommPort 为3(串口3),设置波特率为4800,无校验,8 位数据,1 位停止位。不设置握手协议。

它提供两种处理通信的方式:一是事件驱动方式,一是查询方式。我们本次将利用事件驱动方式。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者Carrier Detect(CD)或Request To Send(RTS)线上一个字符到达或一个变化发生时。在这些情况下,可以利用MSComm 控件的OnComm 事件捕获并处理这些通讯事件。

设置好MSComm 控件后,需要我们双击窗体(FORM),系统会自动生成FormCreate 函数,我们此时需要添加代码进去。每当打开该窗体,系统就会自动执行FormCreate 函数,所以我们需要把初始化的一些参数写入该函数,使其自动运行。我们设置Rthreshold 为1,接收缓冲区收到每一个字符都会使MSComm 控件产生OnComm 事件,设置Sthreshold 属性为1,当传输缓冲区完全空时,MSComm 控件产生OnComm事件。如下为设置初始化代码:

同时,我们可以添加MSComm 组件的OnComm 事件的消息响应函数,只需要点小电话图标,然后在对象检视器的事件中在OnComm 的框中双击系统就会自动生成。我们只需要添加如下代码即可判断。括号内可进一步添加下一步希望的操作。

4 窗体设计

简单设置好串口通信控件后,我们就可以拖入各种所需的控件,可以是系统自带的控件或者第三方控件。

1)单击Form 窗体修改其Caption 属性为全自动综合验光仪。在组件面板的Standard 栏中拖入1 个GroupBox 控件,并调整其大小。之后将拖入的按键与编辑框将分别放在这4 个GroupBox 之上。使用GroupBox 组件可以将部分组件集合起来,使界面更加整洁美观[2]。

2)在组件面板Standard 栏中拖入8 个Edit 框,在左侧的对象检视器中可以设置大小、字体及显示内容等等。这里我们设置Width 为126,Height 为39,Text 为0。我们设置好这几项之后,再在组件面板Standard 栏中拖入14 个Button 按键,分别对其命名修改大小。并对齐摆放。

图1 全自动综合验光仪主界面

3)分别为每个按键添加控制代码,双击某按键便进入其代码编辑界面。当鼠标单击该按键会产生OnClick 事件,此时读取对应Edit 框中数据并进行相应计算后,利用MSComm控件通过串口发送指令。例如以下代码,读取Edit1 中内容经一系列计算后发送5 字节指令。

4)完成基本界面后当我们点击辅助镜片或PD 的按键时,我们希望能弹出新的界面供我们操作,这时我们就需要添加新的窗体进来。点击菜单栏文件按钮新建窗体(或者我们可以连续按FNF 这3 个按键)打开后建立如图2 所示窗体,点击窗体修改Caption 为PD 表明此窗体为瞳距测量窗体,添加两个Button 控件。

图2 全自动综合验光仪PD 界面

5)将其命名保存,这时我们需要将该窗体头文件添加到主界面程序中,主界面才能够调用该界面。双击按键为其添加控制程序。

6)继续制作辅助镜片界面,如同PD 界面一样新建窗体,同样我们需要将按键拖入,因为我们要方便操作,所以我们在按键上贴上各种镜片的示意图以方便操作。这时我们不能再使用组件面板Standard 栏中的Button。因为它不能导入图片。故我们使用Additional 栏中SpeedButton 按键,该按键能导入BMP 图片。导入所需图片使操作界面清晰明了。如图3 所示为打开位,遮盖片,交叉柱镜片,红、绿滤光片,针孔片等。根据其不同功能为每个按键添加控制程序。

图3 全自动综合验光仪辅助镜片界面

7)同理做另一侧辅助镜片界面。

5 窗体美化

做完上述工作后点Run 按钮发现界面不够美化。于是我们继续添加第三方控件VCL Skin 控件。安装后如同MSComm 控件将其拖入界面中。其设置非常简单,单击该图标,在对象检视器中设置Active 属性为true。设置SkinStore浏览计算机文件夹打开连同该组件一起下载的皮肤文件夹,并从其中选定某一皮肤[3]。换肤后如下图所示:

图4 全自动综合验光仪主界面

图5 全自动综合验光仪PD 界面

6 结论

通过使用C++Bulider 完成了全自动综合验光仪上位机界面设计。该界面简洁直观,方便控制,同时利用串口通信控制具有很高的可靠性,符合验光流程标准。

图6 全自动综合验光仪辅助镜片界面

[1]李江全,魏忠岩,姚帅,等.单片机通信与控制应用编程实例[M].北京:中国电力出版社,2012:96-101.

[2]陆卫忠,刘文亮.C++Builder6 程序设计教程[M].北京:科学出版社,2011:66-73.

[3]冯妍黄,铝文,马煜.C++Builder 案例开发集锦[M].北京:电子工业出版社.2008:21-24.

猜你喜欢

窗体控件全自动
咔吱兔的全自动生活
全自动发明机
试谈Access 2007数据库在林业档案管理中的应用
全自动洗衣机
全自动运行系统的兴起与未来之路
关于.net控件数组的探讨
ASP.NET服务器端验证控件的使用
巧设WPS窗体控件让表格填写更规范
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
WinCE.net下图形用户界面的开发