当出现继承关系,比如
祖先:w_master
子孙:w_child 继承自w_master
当w_child写好后(已经存在了)
在w_master中就可以写上instance变量: w_child iw_child
但是,当你用edit source改变w_child时
比如用PB Decompiler反编译后再次import源码时就会报错
C0176: Badly ordered TYPE and VARIABLE declarations. Is this modified exported source?
而且你做optimize时,会提示你导出源码并会把这个对象pbl中移除。
这时如果关闭pb并重新打开w_master,会崩溃,因为w_master缺少w_child这个对象的引用。此时只能在w_master的source edit中先屏蔽w_child iw_child的申明
我理解的:PB提示的意思在于:你继承一个祖先对象时,必须干干净净的继承它,然后再申明变量(要在IDE中操作),而在source edit中修改或者import sr时,这些首位循环引用的对象继承关系,pb无法认同。它无法理解和处理。
具体说:在ide中,像w_child使用了w_master,而w_master中又使用了w_child。当你打开其中一个,再打开另外一个就提示你无法打开。只能关闭另外一个才能编辑。因为在编辑w_master时,pb需要知道w_child的所有静止状态信息。同理,编辑w_child时,也需要完全知道w_master的静止状态信息。不允许同时打开修改。但是pb却可以允许这种循环的引用。
回到刚才的问题。pb提示的错误位置,其实是在实例变量申明的位置。也就是
type variables
。。。。
end variables 《《错误行号提示的其实是这里。
我尝试把子孙对象的变量申明剪切掉,可以正常保存。然后回到ide中,重新粘贴到instance var处是可以正常保存的。