下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用XControl实现面向组件的编程XControl是LabVIEW8中出现的新功能。面向组件的编程(ComponentOrientedProgramming,COP)技术建立在对象技术之上,它是对象技术的进一步发展,类这个概念仍然是组件技术中一个基础的概念,但是组件技术更核心的概念是接口。组件技术的主要目标是复用粗粒度的复用。组件的核心是接口。LabVIEW为我们提供了大量漂亮的控件,可以让我们非常方便的就搭建出一个程序界面。然而,对于追求完美的用户,LabVIEW提供的为数有限的控件是远远不够的。比如图1,是LabVIEW8.2一个新功能,导入导入共享库向导的界面。在它右上方有四个按钮,这
2、四个按钮有着特殊的外观图标,在LabVIEW中没有直接提供这样的按钮。要拥有这样的按钮,并保存下来以供再次使用,就只能自己制作一个自定义控件。关于(用户自定义控件可以参考文章用户自定义控件中Control,TypeDef.和StrictTypeDef.的区别)图 1 : LabVIEW 8.2中 Import Shared Library的界面自定义控件虽然可以定义控件的外观,但无法定义控件的行为,功能复杂一点的控件,.ctl文件就爱莫能助了。还是以图1为例,它的IncludePaths控件是幺个”功能比较复杂的控件,它比LabVIEW自带的列表框多了编辑功能。用户添加或编辑一个路径时,这个控
3、件要为用户在所编辑的项目提供直接编辑使用的文本框,和浏览路径按钮。Listbox、一个实际上这个编辑功能是由三个LabVIEW提供的标准控件合作完成的:一个String和一个Button控件。他们的行为是在程序运行时决定的:当用户编辑控件中某一路径时,程序把String和Button挪到Listbox上需要编辑的那一项,并遮挡住Listbox原本的内容。这样,用户只能在String控件内输入内容,或者点击浏览按钮选择一个路径。编辑完成,程序把String控件的值写到Listbox上相应的项目中。我们虽然看不见图1例子中的程序框图,但是可以想象,上述的一系列操作,如判断String和Button
4、应当显示的位置、然后挪动它们、把String值传给Listbox,处理用户对他们操作的消息等等,会为这个程序添加不少复杂的代码。这些代码应该是与程序的其它部没有任何直接关系的。但是把它们也写在这个界面VI的程序框图上,一方面影响了程序的可读性,另一方面,编程人员有可能在更改程序其它问题是不小心改变了这部分代码,较低了代码的安全性。从逻辑关系上来看,图1中上半部分的Listbox、String、浏览按钮以及右上方四个操作按钮,他们共同完成一个功能,与他们之外的界面控件没有什么关联,所以他们七个应当被作为一个控件,或者说是一个组件。这个组件需要与程序其它模块之间的接口就只是一个字符窜数组,用于输入
5、或输出一组路径。其它的数据和操作,都应当是组件的私有的,外部不可见的。在LabVIEW8之前,想分离和封装出这样一个组件是非常困难的。因为既然这七个控件都在这个VI的面板上,对它们的操作和相应的代码必须放在这个VI的程序框图上,无法与其他代码隔离开。也不是说绝对没有办法,比如你可以使用sub-panel,动态注册事件等方法,强行的把它们的代码分隔开。但是这些方法并不简单直观,使用它们有可能会让程序变得跟为复杂、难以阅读和维护。XControl的出现,才终于为这个问题提供了一个比较完美的解决方案。利用XControl,图1中我们提到的七个应当划分在同一组件的控件可以被制作成一个XControl。
6、这个XControl的外观就是图1中上半部分七个控件组合在一起的样子,XControl与用户自定义控件相比,它不仅定义了控件的外观,更重要的是,开发人员可以通过编写LabVIEW代码定义XControl的行为。并且这些代码是对外隐藏的。开发人员还可以定义XControl的属性和方法,通过PropertyNode和InvokeNode在程序中使用这些属性和方法。同样完成选取一组路径的功能,可以有各种不同的界面,比如各种C+编译器都会提供类似的功能,但外观各不相同。你可以利用XControl,编写多个外观,行为大相径庭的组件。但是,只要他们的接口相同-都是一个字符串数组,用户就可以在这些组件内任意互换,选用自己喜欢的组件,而不需改动程序的任何其它部分。现在,我对XControl不太满意的地方是它还不支持用户自定义的事件。XControl具有封装的特性,因此我在利用LabVIEW工程库实现面向对象编程一文中提到同样可以使用XControl来达到面向对象的编程方法。但是X
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上海市阳光社区青少年事务中心徐汇工作站招聘5人备考题库完整答案详解
- 2026中国工商银行浙江省分行秋季校园招聘备考题库附答案详解(预热题)
- 2025山西晋中寿阳县招聘专职社区工作者35人备考题库附答案详解(巩固)
- 2026农银理财有限责任公司校园招聘15人备考题库附答案详解(典型题)
- 2025年辽阳市公安局招聘警务辅助人员体能测试备考题库附答案详解(精练)
- 2026农银汇理基金管理有限公司校园招聘3人备考题库附答案详解(满分必刷)
- 2025中国工商银行湖南分行校园招聘690备考题库完整答案详解
- 2025安徽宣城宁国市面向社会招聘社区工作者25人备考题库含答案详解(考试直接用)
- 2025宁波慈溪观海卫镇人民政府公开招聘编外工作人员10人备考题库含答案详解
- 2025乌鲁木齐银行喀什分行招聘备考题库含答案详解(满分必刷)
- 2020年领导干部个人有关事项报告表(2020年印制稿)
- 中高级烧结成品工理论知识考试题与答案
- 中小企业公共服务平台建设项目实施方案(3篇)
- YY∕T 0296-2022 一次性使用注射针 识别色标
- 充氮灭火装置课件
- 维修电工等级鉴定-电工高级技师实操试题
- 2022年人教版小学六年级上册科学教案
- 国家职业技能鉴定考评员考试题库1100题【含答案】
- 陕北窑洞PPT课件(PPT 16页)
- 医院有限空间作业管理制度含应急预案
- 脑肿瘤的分类和临床表现优秀课件
评论
0/150
提交评论