LabVIEW类被锁定且不可编辑



主要软件:
主要软件版本: 8.2
主要软件修正版本: N/A
次要软件: N/A

问题:

我有LabVIEW类并将这个类的控件添加到另一个应用程序实例。现在这两个实例都被锁定,不可编辑。
可能发生这种情况的一个实例是将在应用程序实例中加载的LabVIEW类和类的另一个控件加载到另一个应用程序实例中的VI。
当我这样做,类及其私人数据控件被锁定,不能编辑。为什么会发生这种情况?此外,当我从第二个应用程序实例中删除控件时,我会期望类解锁,但它保持锁定。我如何解锁我的LabVIEW类进行编辑?当我这样做,类及其私人数据控件被锁定,不能编辑。为什么会发生这种情况?此外,当我从第二个应用程序实例中删除控件时,我会期望类解锁,但它仍然锁定。如何解锁我的LabVIEW类进行编辑?



解答:

这种情况可能发生在有一个LabVIEW类加载在一个应用程序实例,然后该类的控件加载到另一个应用程序实例中的VI。

这个锁适用于类本身,私有数据控件和私有数据控件使用的任何typedef。如果在第一个应用程序实例中有一个类,则将该类的控制项拖放到第二个应用程序实例中的VI上将再次加载该类。导致类在两个应用程序实例中被锁定,直到类的一个实例从内存中卸载。

从第二个应用程序实例卸载类将解锁该类,以便在第一个应用程序实例中进行编辑。但是,如果你只是删除类控件,该类不会被卸载,因为在VI的撤销历史中仍然有类的数据。我们不能卸载类,直到所有数据实例消失。将VI保存在第二个应用程序实例中(类控件被删除后)将清除VI的撤销历史记录,并解锁该类以便在第一个应用程序实例中进行编辑。类似地,关闭第二个应用程序实例中的VI也将允许类保留离开内存并解锁类以便在第一个应用程序实例中进行编辑。

此锁定用于解决在副本之间进行更改时可能发生的任何问题。例如,如果在一个应用程序实例中编辑typedef,并且在另一个实例中编辑类,则无法解析这些更改,因为进行更改的顺序会影响类的最终结果。
,这种情况可能发生的情况是,当有一个LabVIEW类加载在一个应用程序实例,然后该类的控件加载到另一个应用程序实例中的VI。

这个锁适用于类本身,私有数据控件和私有数据控件使用的任何typedef。如果在第一个应用程序实例中有一个类,则将该类的控制项拖放到第二个应用程序实例中的VI上将再次加载该类。导致类在两个应用程序实例中被锁定,直到类的一个实例从内存中卸载。



相关链接: White Paper: LabVIEW Object-Oriented Programming: The Decisions Behind the Design
White Paper: LabVIEW Object-Oriented Programming FAQ, White Paper: LabVIEW Object-Oriented Programming: The Decisions Behind the Design
White Paper: LabVIEW Object-Oriented Programming FAQ

附件:





报告日期: 06/05/2006
最近更新: 04/27/2017
文档编号: 3Y18O59I