Powerbuilder 12.5获取父窗口变量

时间:2016-12-17 14:43:50

标签: inheritance powerbuilder

尝试从响应窗口的父窗口获取变量(两个窗口都是继承的 - 我没有源代码)。我能够通过所有父变量,对象,控件等循环,但我似乎无法读取任何变量。此代码用于" ok event"。感谢任何帮助。

window lw_active, w_parentwindow
string ls_winname, ls_libname, ls_wintitle
ClassDefinition cd_windef


w_parentwindow = this.ParentWindow()
lw_active = w_parentwindow.GetFirstSheet()

if isvalid(lw_active) = True then
        ls_winname = lw_active.classname()

        cd_windef = FindClassDefinition(ls_winname)
        ls_libname = cd_windef.LibraryName
        ls_wintitle = lw_active.title

        messagebox(ls_winname, ls_libname+'~r~n~r~n'+ls_wintitle, Information!)       

        string s, lineend
integer li
VariableDefinition vard
lineend = "~r~n"
FOR li = 1 to UpperBound(cd_windef.VariableList)
   vard = cd_windef.VariableList[li]
   s = s + vard.Name + lineend
NEXT
messagebox('s',s) 

end if

1 个答案:

答案 0 :(得分:1)

  1. 继承您要访问的窗口。我会把你的后代窗口和他们的祖先称为他们。
  2. 向w_mine添加访问者方法。你将能够引用任何不属于私人的东西。
  3. 声明类型为w_mine的变量。
  4. 将窗口引用分配给w_mine。然后,您可以调用添加到w_mine的方法。
  5. 不要毁灭。只是让它超出范围。在PB中,没有必要将变量设置为null或执行任何特殊操作。请注意,如果您关闭窗口,您的引用将变为无效。我会避免使用实例变量来保存引用。