,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,11,章 属性节点和方法节点,1,引子,在面向对象的编程中,我们将类中定义的数据称为属性,而函数称为方法。实际上,,LabVIEW,中的控件、,VI,、甚至应用程序都有自己的属性和方法,譬如一个数值控件,它的属性包括它的文字颜色、背景颜色、,Caption,和,Label,等;,2,本章内容,11.1,属性节点(,Property Node,),11.2,方法节点(,Invoke Node,),11.3,通过子,VI,调用控件的属性和方法,11.4,几种常用控件的编程举例,11.5,小结,3,11.1,属性节点(,Property Node,),属性节点可以用来通过编程设置或获取控件的属性,譬如在程序运行过程中,我们可以通过编程设置数值控件的背景颜色等属性。,Ring,控件的属性节点举例,4,11.1,属性节点(,Property Node,),举例,通过,Visible,属性控制按钮是否可见,5,11.1,属性节点(,Property Node,),举例,在事件结构中使用属性节点,6,11.2,方法节点(,Invoke Node,),方法节点和属性节点非常类似,方法节点就好比控件的一个函数,它会执行一定的动作,有些时候还需要输入参数或返回数据。,树形控件的方法节点函数菜单及其方法节点示例,7,11.3,通过子,VI,调用控件的属性和方法,一般情况下,将控件作为子,VI,的输入端时只能传递控件的值,而不能传递控件的属性。那么如何才能在子,VI,中调用上层,VI,中控件的属性和方法节点呢?,这就需要使用,Refnum,控件作为子,VI,的输入端子,在调用时将控件的,Reference,与,Refnum,端子连线即可。,8,11.3,通过子,VI,调用控件的属性和方法,通过子,VI,调用控件的属性节点示例,9,11.4,几种常用控件的编程举例,11.4.1 Ring,控件和,Enum,控件,对于两种控件,用户都是一次只能选择其中一个项目,控件的输出值都为数字。不同的是,Ring,控件各项目的值是可以任意设定的,而,Enum,控件各项目的值一定是从,0,到,n-1,(,n,代表项目个数),这是因为,Enum,控件才是标准的枚举类型。,Ring,控件的项目可以是字符串或是图片。,10,11.4,几种常用控件的编程举例,通过属性节点来设置,Ring,控件的选项,11,11.4,几种常用控件的编程举例,获取,Ring,控件或,Enum,控件的当前选中文本,12,11.4,几种常用控件的编程举例,11.4.2,列表框(,Listbox,),对于,Ring,控件和,Enum,控件,用户每次只能选择一个选项。而通过列表框用户每次可以选择一个或多个选项,甚至,0,个选项,通过编程编辑列表框选项,13,11.4,几种常用控件的编程举例,读取列表框选中选项的名称,14,11.4,几种常用控件的编程举例,11.4.3,树形控件(,Tree Control,),通过编程为树形控件添加项目必须通过属性节点和方法节点才能实现,15,11.4,几种常用控件的编程举例,通过编程为树形控件添加项目,16,11.4,几种常用控件的编程举例,11.4.4,自动图例举例,17,11.4,几种常用控件的编程举例,18,11.5,小结,从本章的例子可以看出,通过属性节点和方法节点可以让控件的功能与动态行为更加丰富。在,LabVIEW,编程中,当某种功能很难用普通的,VI,函数实现的时候,也许通过属性节点和方法节点就能很轻松地解决。所以若,LabVIEW,编程者想学到更多的编程技巧可以更多的去尝试控件的属性节点和方法节点。,19,小试身手,1.,在第,6,章习题,1,的基础上利用“报警信息”控件的,blinking,属性,实现在输出报警信息的同时伴随闪烁,如下图所示。为了能看到闪烁效果,需要将采样间隔设到,5,秒以上。,20,小试身手,2.,本书第,156,页中的图,11.14,所示的例子存在,bug,,,for,循环部分应该改为下面左图所示。在此基础上将,for,循环部分封装为子,VI,,利用编程生成如下面右图所示的树。,21,