代词(PB)
代词日常生活中我们用我你他之类的代词指代特定的人物,PowerBuilder 也提供了几
个代词指代特定的对象程序中使用代词的好处是避免硬代码做到通用化PowerBuilder
提供了四个代词分别为This Parent ParentWindow 和Super 其中前三个代词应用广
泛下面简单介绍一下这些代词的意义和用法
This This 代表窗口用户对象菜单应用对象或控件本身即代表正在为
之编写事件处理程序的对象例如窗口中有一个名称为cb_button 的按钮按
钮上显示的文本为请单击在该按钮的Clicked 事件处理程序中可以写上
代码
cb_button . text="再单击一次"
程序运行后单击该按钮时其显示文本变成再单击一次但当我们把这段
程序粘贴到其他窗口的按钮事件处理程序中时它就有可能不能正常工作原因
在于其他按钮的名称并不一定就是cb_button 现在把上面的程序段修改为
This . text="再单击一次"
那么无论将它粘贴到哪个按钮的事件处理程序中它都能正常工作这里的This
代表该按钮因为我们在对按钮的Clicked 编写事件处理程序
Parent Parent 指当前控件所在的窗口例如窗口w_win 中有个按钮cb_close
其功能是单击后关闭窗口w_win 我们可以在按钮的Clicked 事件处理程序中
写上代码
close(w_win)
但采用代词Parent 把这条语句修改为
close(Parent)
则使代码具备更强的通用性和可移植性并且也更容易理解
ParentWindow ParentWindow 代表运行时菜单所在的窗口该代词只能在菜
单的事件处理程序中使用例如在关闭窗口菜单项的Clicked 事件处理
程序中写上代码
close(ParentWindow)
单击该菜单项时就会关闭与之关联的窗口而不管窗口的具体名称叫什么
Super 在编写控件或对象的子对象时子对象中可以调用父对象的事件处理
程序程序中既可直接利用父对象的名称调用它们也可以使用Super 代词来
引用例如想调用父对象的Clicked 事件处理程序时子对象中可以这样写
CALL Super::Clicked
当调用在子类中被重载的父对象的函数时也可以使用Super 来指代父对象例如
子对象重载了父对象的函数f_func() 在子对象中调用父对象的f_func()函数的语句可以这
样编写
Super::f_func()
[[it] 本帖最后由 freele_china 于 2008-5-19 16:09 编辑 [/it]]