“外观”功能用于定义XControl的外观。“外观”功能可通过外观VI实现。因为XControl需要“外观”功能,所以创建XControl时,LabVIEW将自动把“外观”VI添加至XControl库。“外观”VI必须是重入VI。

编辑外观VI

向“外观”VI添加LabVIEW输入控件和显示控件以创建XControl的前面板。默认状态下,“外观”VI包括数据、显示状态、容器状态控件和数据、显示状态和动作显示控件。这些输入控件和显示控件被隐藏,不出现在XControl的外观中。根据出现在XControl外观中的输入控件和显示控件,重新调整前面板的大小。设置“外观”VI的窗口外观属性,调整修改XControl的大小外观

“外观”VI的程序框图可处理前面板上控件的事件以及“外观”VI本身。该程序框图包含一个内部含有一个事件结构While循环。“外观”VI不是连续运行的VI。LabVIEW仅在VI有待处理事件时调用“外观”VI。LabVIEW调用具有当前数据、显示状态和容器状态的“外观”VI。“外观”VI将处理事件并返回更新后的数据、显示状态和执行的动作类型。

容器状态簇用于提供XControl的实例信息。容器状态簇包含三个元素:显示控件?运行模式?引用句柄显示控件?用于确认XControl实例是输入控件还是显示控件。运行模式?用于确认使用XControl的VI的状态为运行中还是空闲。运行模式?设为TRUE时,所属VI的状态为运行中。引用句柄是仅用于查询XControl信息的XControl实例的引用。不要用引用句柄从外观VI修改XControl实例。

“外观”VI改变数据或显示状态时,应更新动作簇并通知LabVIEW上述改动。动作簇包含三个元素 - 已更改数据已更改状态动作名称已更改数据设为TRUE时“外观”VI将改变数据输出显示控件。已更改状态设为TRUE时“外观”VI将改变显示状态输出显示控件。也选用动作名称命名正在执行的动作。动作的名称在选中编辑»撤消选项时出现。通常,“外观”VI对在其前面板上的控件所生成的事件作出响应,改变其数据或显示状态。

“外观”VI的事件

“外观”VI也对由用户交互而生成的事件作出响应。这些事件包括数据更改显示状态更改方向更改执行状态更改事件。“外观”VI必须处理“数据更改”和“显示状态更改”事件以保证能正常运行。而“方向更改”和“执行状态更改”事件的处理为可选。

LabVIEW调用“外观”VI处理这些事件。例如,当复制XControl时,LabVIEW将产生所有四个事件,并在XControl的新实例上调用“外观”VI。加载包含XControl的VI的前面板时,LabVIEW也会产生四个事件并调用“外观”VI。当包含XControl的VI从编辑模式变为运行模式(或相反)时,LabVIEW将产生一个“执行状态更改”事件,并调用“外观”VI响应VI执行状态的改变。

选择编辑»撤消编辑»重做时,LabVIEW也会调用“外观”VI。“外观”VI改变状态进行任何操作前,LabVIEW将恢复XControl的显示状态。当前显示状态将替换上一个状态。在撤消或重做动作之后,LabVIEW生成一个“显示状态改变”事件并调用“外观”VI,更新XControl。

编辑每个事件分支,配置XControl响应事件的方式。要使XControl能快速响应,配置“外观”VI尽快处理事件并结束运行。不要在While循环的事件结构中使用“等待”函数。

注: “外观”VI还可用于通过编程自定义XControl的快捷菜单。不可使用快捷菜单编辑器自定义XControl快捷菜单。