|
你可能碰到了LabVIEW子类中的数据被还原为对象的缺省值的问题。这个问题在当你将保存在某处的子数据类型平化后就会发生。当你编辑LabVIEW类的私有数据时,LabVIEW保存关于你编辑的信息,从而将数据从该类的早期版本还原回来,然后再将该数据再变异为该数据的最新类版本。
当你重命名这个没保存在内存中LabVIEW类名时,LabVIEW会保存私有数据,删除该类的变异记录,并且将版本号重置为1.0.0.0。该类依然正确工作,即使LabVIEW现在已认为它是一个全新的类。但是,如果你重命名一个子类已保存在内存中的父类时,LabVIEW并没有记录类的变异记录。因此,该子类就不能将它的数据从旧版本转换为最新的类版本。还原操作不再正确,所有子类控件中的操作值也重设为该对象的缺省值。如果你已经做了不保存你的修改作为缺省的改动的话,这个就可能是导致你丢失数据的问题所在。
为了能尽可能地减小当你将LabVIEW类改名时候丢失数据的机率,你需在没有子类在内存中的时候改变类名。当你以后加载子类时,它们因为无法找到父类而显示的是断开的。为了纠正这个问题,修改继承到你新命名的类。LabVIEW除了父类的数据部分外都将数据进行了预留。LabVIEW将该部分数据还原为该对象的缺省值,但是也保留了早先父类和子类自己的所有数据。
如果想更多了解当你修改LabVIEW类名时,LabVIEW如何使用变异记录,请参考LabVIEW帮助中的开发LabvIEW类主题。
|