你好,
我们正在 pb 12.6 Build 4035 - Classic 上开发我们的产品。现在我们有以下问题:
我们有一个复杂的窗口层次结构,每个层次都有一种特殊的功能并且变得越来越复杂。最高层是一个可视化的用户对象。这将实例变量带到了窗口。如果用户在用户对象中执行任何任务,我们将通过实例 var 将操作发送到窗口。开发->保存->运行一切正常。但是在将函数部署到窗口后,运行时引用会出错。此错误发生在 powerbuilder 用完(仅在部署后)和运行 exe(独立)时。在重新保存我们的用户对象后,它又可以工作了。
我们的窗口层次结构:
从最低到最高
- wo_window(简单窗口,基本功能,如 msgbox)
- wo_uni(窗口有正确的系统和更多的功能)
- wo_sheet(窗口可以与数据库通信)
- wo_tab(窗口有一个标签页)
- wo_tab_obj(对象窗口,特殊功能,对象是项目或地址,层次结构的最高级别)
- w_adr(地址的对象窗口)
wo_tab_obj 上是我们的用户对象。=> wo_tab_obj::open{ uo_blaettern_obj.event ue_set_ref( /*wo_tab_obj awo_tab_obj */ this ) }
-> 在用户对象中,引用存储在 iwo_tab_obj 中
用户开始对用户对象执行操作,代码调用:iwo_tab_obj.get_obj().get_parameterart()
函数调用 get_obj() 抛出异常错误的运行时引用。get_obj() 在 wo_tab_obj 中声明。所以现在我们尝试了一些东西并调用了较低层次级别的函数。这是有效的(也在编译和运行exe之后)。
异常也出现在事件中,调用在 wo_uni 中声明的事件有效。
所以我们认为编译过程中存在错误,或者我们做错了什么?
我们不会重新创建窗口层次结构,因为它非常适合我们的任务,我们需要所有这些级别。