2011年8月19日,第一稿
2011年8月19日,第二稿
2011年8月19日,第二稿
3.5 控件的深入探索
控件是前面板上的对象,这是我们已经熟知的基本概念。而图形化的控件在LabVIEW中绝对起到了非常重要的作用。
采用图形化的方式,不仅形象的表现出控件的最基本功能,并且完全得到了最终用户的认可。当然使用这种图形化语言的工程师和科学家也非常满意和认可。
采用图形化的方式,将控件的数据和功能封装在一起,即满足工程领域对待解问题的高度抽象,又大大降低了程序设计中的复杂性(决不仅仅是装饰作用)。比如各类型开关、温度计、波形图、多项列表框等等。
在面向对象编程语言中,对象是类的实例,所有对象都是独一无二的,属于同一类、具有共同的特性和行为。
尽管LabVIEW不是纯粹的面向对象的编程语言,但是图形化语言中对象(控件)的概念与面向对象编程语言中的对象有许多相似之处。比如在LabVIEW中,我们也可以看到这样的基本特征,LED指示器就有外观为方形或圆形不同的控件,但它们是属于各自独立的控件,尽管它们属于同一类、具有共同的特性和行为。
但是需要我们注意的是:由于LabVIEW自身的一些特点(LabVIEW并非是纯粹的面向对象的编程语言),所以控件类是通过VI服务器类来展现的。
采用图形化的方式,不仅形象的表现出控件的最基本功能,并且完全得到了最终用户的认可。当然使用这种图形化语言的工程师和科学家也非常满意和认可。
采用图形化的方式,将控件的数据和功能封装在一起,即满足工程领域对待解问题的高度抽象,又大大降低了程序设计中的复杂性(决不仅仅是装饰作用)。比如各类型开关、温度计、波形图、多项列表框等等。
在面向对象编程语言中,对象是类的实例,所有对象都是独一无二的,属于同一类、具有共同的特性和行为。
尽管LabVIEW不是纯粹的面向对象的编程语言,但是图形化语言中对象(控件)的概念与面向对象编程语言中的对象有许多相似之处。比如在LabVIEW中,我们也可以看到这样的基本特征,LED指示器就有外观为方形或圆形不同的控件,但它们是属于各自独立的控件,尽管它们属于同一类、具有共同的特性和行为。
但是需要我们注意的是:由于LabVIEW自身的一些特点(LabVIEW并非是纯粹的面向对象的编程语言),所以控件类是通过VI服务器类来展现的。
3.5.1 控件与VI服务器类之间的关系
控件与VI服务器类之间的关系,我们可以通过“选择输出的类”来获得。具体操作是:在程序控图中,鼠标右键单击空白处,在弹出的快捷菜单中选择:
》函数
》编程
》应用程序控制
》类说明符常量
将类说明符常量拖拽程序框图上,它的默认值为:通用。鼠标右键单击该常量,在弹出的快捷菜单中选择:
》选择VI服务器类
》通用
》图形对象
》控件
》字符串
》字符串
这样我们就得到了一个字符串的类说明符常量,参见下图。
》函数
》编程
》应用程序控制
》类说明符常量
将类说明符常量拖拽程序框图上,它的默认值为:通用。鼠标右键单击该常量,在弹出的快捷菜单中选择:
》选择VI服务器类
》通用
》图形对象
》控件
》字符串
》字符串
这样我们就得到了一个字符串的类说明符常量,参见下图。
注意:该常量与“转换为特定的类”和“转换为通用类”函数配合使用。常量的值永远是非法引用句柄,因此不能连线该常量至属性节点的引用端。
关于控件类对象的层次继承结构与类的转换关系,我们认为在[1]p168中已经给出了很好的说明,有兴趣可参考,这里就不在讨论了。这里我们仅讨论另外的其它特性。
关于控件类对象的层次继承结构与类的转换关系,我们认为在[1]p168中已经给出了很好的说明,有兴趣可参考,这里就不在讨论了。这里我们仅讨论另外的其它特性。
3.5.2 控件的创建和销毁
许多图形化控件都是为满足工程设计需求而高度抽象出来的对象,它被安置在控件选版上,可以被重复使用。
控件的数据类型与控件的基本功能有关。比如开关类就属于布尔数据类型,而字符串控件就属于字符串数据类型等等。
控件根据程序中的需要由程序的设计者创建。控件的创建就是将其从控件选版上拖拽到前面板上,此时开发环境就会自动为其分配内存(数据保存)并保留相关基本信息,并通过它的静态属性可以设定其基本参数,只要你需要它,它就会持久存在(在程序的非执行状态下它可以依然存在,纪录保存在VI中)。
控件的静态特性也可以称其为:控件的持久性。也就是说,当我们在VI中创建了控件后它就会持久的存在。只要保存这个VI,控件的原始(静态)特性就会以某种特殊的方式被纪录和保存。打开VI并导入后,控件即被激活并显现它初始的静态特性。这种自动纪录和保存过程完全是语言系统的自身行为,根本无须我们过多的参与。如果真的想参与的话,完全可以通过配置文件(.ini)与属性节点或调用节点通过编程来配合实现。
由于控件具有丰富的属性和方法(事先定义),通过VI服务器的管控使它具备一定的程控能力(在程序执行过程中体现)。这个特点也可以称其为:控件的动态特性。
控件的销毁就是将其从前面板上删除它,删除后控件的一切信息均不会保留。
控件,采用图形化的方式将对象的数据和功能封装在一起的这个特点,也是图形化语言高效的具体体现。
控件的数据类型与控件的基本功能有关。比如开关类就属于布尔数据类型,而字符串控件就属于字符串数据类型等等。
控件根据程序中的需要由程序的设计者创建。控件的创建就是将其从控件选版上拖拽到前面板上,此时开发环境就会自动为其分配内存(数据保存)并保留相关基本信息,并通过它的静态属性可以设定其基本参数,只要你需要它,它就会持久存在(在程序的非执行状态下它可以依然存在,纪录保存在VI中)。
控件的静态特性也可以称其为:控件的持久性。也就是说,当我们在VI中创建了控件后它就会持久的存在。只要保存这个VI,控件的原始(静态)特性就会以某种特殊的方式被纪录和保存。打开VI并导入后,控件即被激活并显现它初始的静态特性。这种自动纪录和保存过程完全是语言系统的自身行为,根本无须我们过多的参与。如果真的想参与的话,完全可以通过配置文件(.ini)与属性节点或调用节点通过编程来配合实现。
由于控件具有丰富的属性和方法(事先定义),通过VI服务器的管控使它具备一定的程控能力(在程序执行过程中体现)。这个特点也可以称其为:控件的动态特性。
控件的销毁就是将其从前面板上删除它,删除后控件的一切信息均不会保留。
控件,采用图形化的方式将对象的数据和功能封装在一起的这个特点,也是图形化语言高效的具体体现。
3.5.3 利用更加丰富多彩的控件
在LabVIEW 2011最新版本中,提供了新式控件。参见下图。
如果你安装了VIPM[14]会在控件选版上看到以下样式不同的控件。参见下图。
未来会有更多的、不同风格的控件供我们在程序设计中选择。








