自定义类型和严格自定义类型之间的区别

更新 May 3, 2021

适用于

软件

  • LabVIEW Full
  • LabVIEW Professional

问题详述

  • 在LabVIEW中,我可以创建自定义类型或严格自定义类型。为什么我会使用一个而不是另一个?两者有什么区别?
  • 我有一个自定义类型或严格自定义类型,并对其更改了默认值,为什么这个更改不会应用到使用该自定义类型的每个实例上?

解决方案

概览

LabVIEW中的自定义类型和严格自定义类型都是用户自定义的控件(* .ctl文件),可以放置在任何VI中。当更改*.ctl文件时,每个使用该控件的VI也将被更改,这样就无需自己更改每个VI。使用自定义类型时,LabVIEW确保在使用该控件的任何位置数据类型都相同。严格自定义类型更具限制性,LabVIEW确保几乎所有关于控件的内容都保持不变。

自定义类型

只要控件的“数据类型”在主副本上保持一致,自定义类型可以具有不同的名称、描述、默认值、尺寸、颜色或控件样式(例如旋钮而不是滑动杆)。自定义类型仅为控件的每个实例指定正确的“类型”。“类型”不包括数值控件的数据范围或下拉列表控件中的项名称之类的内容。例如,如果更改自定义类型中数值控件的数据范围或下拉列表控件的项名称,则不会更改该控件所有实例的这些属性。但是,如果您在自定义类型中更改枚举控件的项名称,则所有实例也将随之更改,因为项名称是枚举控件“类型”的一部分。

严格自定义类型

严格自定义类型控件几乎强制该控件的所有内容都相同,包括其尺寸、颜色和外观。与自定义类型不同,严格自定义类型更具限制性,它们定义属性的值,例如数值控件的范围检查和下拉列表控件的项名称。严格自定义类型的灵活性只存在于名称、描述和默认值中,对于控件的每个实例,这些值可以是不同的。严格自定义类型控件可用的属性仅有那些影响控件外观的,比如“Visible(可见)”、“Disable(禁用)”、“键选中(Key Focus)”、“闪烁(Blinking)”、“位置(Position)”、“边界(Bounds)”。举个例子,如果您有一个由多种控件组成的簇,并为它制作了一个严格自定义类型,则簇当中的每个单独控件的属性不可用,只有整个簇的外观属性时可用的。

相关信息

大多数程序员使用“自定义类型”和“严格自定义类型”来创建自定义控件,这些控件是许多控件组成的簇。然后可以将其他项添加到客户自定义的簇当中,并应用到整个应用程序。如果您有必须与簇进行交互的子VI,那么这个功能会特别有用,因为您不需要为每个子VI手动更新簇。