通过VI脚本获取未知VI中对象的引用
- 更新时间2025-08-27
- 阅读时长4分钟
必需: VI脚本
可使用VI脚本查看和编辑未知VI对象。和其他VI脚本操作一样,必须先打开目标VI的引用。但是,直到运行时才了解目标VI的内容,不能使用打开VI对象引用函数通过对象标签定位对象。相反,可使用遍历图形对象VI,识别同一个类下的所有对象。然后从返回的数组中查找要操作的对象。
使用的对象
VI脚本任务需用到下列对象:
操作步骤
准备:关于下列步骤的范例,见labview\examples\Application Control\VI Scripting\Finding and Modifying Objects目录下的Obtaining Unknown Object References VI。
-
获取包含要查看或编辑对象的目标VI的引用。
范例详细信息
在该例中,打开VI引用函数提供对目标VI路径控件指定的VI的引用。用户只需指定一个VI路径就可打开一个目标VI。另外,脚本VI也可在一组子VI上进行上述操作。
- 确定要获取对象的类和位置。
- VI - 将该引用连接至遍历图形对象VI的VI引用句柄。
- VI中的位置 - 在目标VI中,对象可以在前面板、程序框图、簇、结构中。必须在遍历图形对象VI的遍历目标输入中指定位置。
范例详细信息
在该例中,脚本VI需要操作控件接线端,属于程序框图对象。脚本VI指定遍历范围为BD。
注: 如要遍历的对象在簇或结构框图中,从遍历目标输入的可选枚举列表中选择Other。将簇或结构的引用连接至遍历图形对象VI的其他引用句柄接线端。 - 对象的类名 - 关于要操作的对象的类名,请参考常见VI对象的组成部分。
范例详细信息
在该例中,脚本VI获取的是控件接线端引用,脚本VI使用控件接线端的类名。
- 将第2步获取的信息连接至遍历图形对象VI,用其获取目标对象的引用。
- 在返回的数组中找到要操作的对象。
范例详细信息
在该例中,脚本VI使用For循环在引用数组中遍历各个元素。
- 使用转换为特定的类函数将返回的引用强制转换为特定的类。遍历图形对象VI返回图形对象引用数组,而不是类名下的成员的引用。不过,可使用转换为特定的类函数,将返回的引用安全强制转换为类名指定的类。转换为具体的类可使用更多的属性和方法。
范例详细信息
在该例中,返回的引用转换为控件接线端引用。这种强制转换是有意义的。因为图形对象类上标签:可见属性不可用,只需把控件接线端:标签:可见属性改为TRUE,即可实现控件接线端标签可见。上述强制转换不会出现错误,因为遍历图形对象VI已专门搜索过控件接线端对象。
- 将引用连接至属性节点或调用节点,获取或设置引用对象的信息。
范例详细信息
在该例中,脚本VI使用属性节点设置各个控件接线端引用指向控件的“标签:可见”属性为TRUE。
- 使用关闭引用函数,在引用使用结束时关闭各个对象引用。
说明和建议
其他范例
关于使用“遍历查找图形对象”VI的范例,见labview\examples\Application Control\VI Scripting\Finding and Modifying Objects目录下的Using Traverse VI。