您好,
我们在pb 12.6 Build 4035 - Classic上开发我们的产品。现在我们遇到以下问题:
我们有一个复杂的窗口层次结构,每个级别都有一种特殊的功能,并且变得越来越复杂。在最高级别是一个视觉用户项目。这使得实例var到了窗口。如果用户在userobject中执行任何任务,我们会通过实例将操作发送到窗口。 Delevoping - >保存 - >跑步都没关系。 部署之后 BUT 窗口的函数最终会出现错误的运行时引用。在powerbuilder耗尽(仅在部署之后)并运行exe(独立)时会发生此错误。在我们的userobject新保存后,它再次运行。
我们的窗口hierachie:
从最低级别到最高级别
- wo_window(简单窗口,基本功能,如msgbox)
- wo_uni(窗口有正确的系统和更多的功能)
- wo_sheet(窗口可以与数据库通信)
- wo_tab(窗口有一个标签页)
- wo_tab_obj(对象窗口,特殊功能,对象是项目或地址,最高层次结构)
- w_adr(地址的对象窗口)
是我们的userobject。 => wo_tab_obj :: open {uo_blaettern_obj.event ue_set_ref(/ * wo_tab_obj awo_tab_obj * / this)}
- >在userobject中,引用存储在iwo_tab_obj
中
用户对userobject和代码调用启动操作:iwo_tab_obj.get_obj()。get_parameterart()
函数调用get_obj()抛出异常错误的运行时引用。 get_obj()在wo_tab_obj中声明。所以现在我们尝试了一些东西,称为较低层次的功能。这是有效的(也是在编译和运行exe之后)。
异常也会在事件中出现,调用在wo_uni声明的事件。
所以我们认为编译过程中存在一个错误,或者我们做错了什么?
我们不会重新创建我们的窗口层次结构,因为它非常适合我们的任务,我们需要所有这些级别。
答案 0 :(得分:0)
我怀疑这是编译过程中的一个错误。更可能的情况是编译的P代码中的指针问题...您是否有可能在层次结构中的某处具有循环对象引用?
例如,在wo_tab_obj中的某个地方,您可能会引用某个userobject或NVO类,它本身有一个引用回wo_tab_obj的声明。