PowerBuilder使用心得 (1)在线教程

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 22:39:29
当子类重载了父类的函数或事件时,而且子类被实例化为对象,调用该对象的函数或事件时,子类的函数或事件被执行。如果需要在此时调用父类的函数与事件,可以用::域分辨符实现。

语法如下:

    {objectname.}ancestorclass::{type}{when}name({arguments})

其中:

objectname   :   对象名

ancestorclass :   需调用的父类名,可以用Super关键字代替。

type      :   指明调用的是函数还是事件,可取如下值

        FUNCTION 表明调用的是函数(缺省方式)

        EVENT  表明调用事件

when      :   指明事件或函数被调用的时间,可取如下值

        TRIGGER 立即执行(缺省方式)

        POST  本段代码(Script)执行完再执行

name      :   被调用的函数名或事件名

arguments   :   调用参数



如果子类事件的重载代码是extend父类的代码,那么在子类代码执行完毕之后再执行父类代码。如果父类的代码有返回值的话,那么该返回值将会丢失。

若要截取该返回值,必须在重载的事件代码中使用触发该事件

result = Super::EVENT eventname(argumentlist)

return result

举例:

w_ancestor为父类窗口,w_child为子类窗口,在w_child的Open事件中调用父类的Open

事件(假设继承方式为Override),可用

w_ancestor::EVENT Open()



Super::EVENT Open();

调用父类的函数

w_ancestor::wf_WinFunc( arg1, arg2 ) // Execute immediately



w_ancestor::POST wf_WinFunc(arg1, arg2) // Execute after the script finishes

Tags:

作者:佚名
分享到: 微信 更多