Database 版 (精华区)
发信人: wodeji (西西), 信区: Database
标 题: PowerBuilder每日心得
发信站: 紫 丁 香 (Thu Jul 23 18:23:07 1998), 站内信件
如何在子类中调用父类的函数与事件(对PB5适用)
当子类重载了父类的函数或事件时,而且子类被实例化为对象,调用
该对象的函数或事件时,子类的函数或事件被执行。如果需要在此时
调用父类的函数与事件,可以用::域分辨符实现。
语法如下:
{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
发信人: wdsq (WonderDiscoveror), 信区: Database
发信人: wdsq (WonderDiscoveror), 信区: Database
标 题: PowerBuilder每日心得(2)
发信站: 华中地区网络中心 (Mon Sep 23 19:35:54 1996)
今天发现一个PowerBuilderd编程技巧的WWW点,还值得去看看。
http://ourworld.compuserve.com/homepages/Howe/
发信人: wdsq (WonderDiscoveror), 信区: Database
发信人: SQ (WonderDiscoveror), 信区: Database
标 题: PowerBuilder 每日心得 (5)
发信站: 华中地区网络中心 (Mon Oct 7 17:05:36 1996)
前几天为了如何创建 proxy object 大伤脑筋,没想到竟如此简单!
在设计User Object时,从右键菜单中点取 Set Proxy Object Name 即可!
在设计User Object时,从右键菜单中点取 Set Proxy Object Name 即可!
哈哈哈!我前两天怎么没想到呢?
发信人: wdsq (WonderDiscoveror), 信区: Database
发信人: SQ (WonderDiscoveror), 信区: Database
标 题: PowerBuilder 每日心得 (6)
发信站: 华中地区网络中心 (Tue Oct 8 11:09:54 1996)
在PowerBuilder中用 OLE Automation 太简单了!
PB5 不仅可以支持OLE Automation Client, 而且可以很方便地做
OLE Automation Server. 事实上,每个user object 都是OA Enabled的。
如果外面的应用程序要使用PB的User Object, 只需作如下调用:
1. 在VB中调用
Dim PBObject as object
'Create the ole object at first
'Create the ole object at first
PBObject = CreateObject("uo_test") 'uo_test is my userobject in PB
if PBObject is nothing then
REM Error handling
else
PBObject.SomeAttribute = "some value"
PBObject.DoSomething("Method parameter")
end if
'Disconnect the OLE object
PBObject = nothing
2. 在PB中使用其它PB程序的对象
OleObject PBObject
long status
PBObject = CREATE OleObject
status = PBObject.ConnectToNewObject("uo_test")
if (status<0) then
// Error handling
else
PBObject.SomeAttribute = "some value"
2. 在PB中使用其它PB程序的对象
OleObject PBObject
long status
PBObject = CREATE OleObject
status = PBObject.ConnectToNewObject("uo_test")
if (status<0) then
// Error handling
else
PBObject.DoSomething("Method parameter")
end if
// Destroy the object after quiting program
DESTROY PBObject
当然,如果要向上面如此方便地使用PB的user object, 使其在外部可被驱动,必须
在系统的注册数据库中有记录。利用PB5提供的Install Builder, 可以方便地生成
注册所需要的注册数据和Type Library.
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: cad4.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.397毫秒