17.2 Nonvisual Object 与 Proxy Object
第一步,我们所做的是将折扣计算模块生成一个非可视对象NVO。
单击用户对象按钮,按NEW,然后选择Class框中的Custom按钮,系统出现一个用户对象窗口。我们可以注意到窗口的标题栏中有一句话为:Inherited from Nonvisual Object,它说明我们所创建的对象正是NVO。接着我们为NVO定义一个函数。打开Declare菜单中User Object Functions,按NEW按钮,这样就打开了函数定义窗口(图17-2)。这个函数名为GetDiscount,它需要有一个参数为Custom Name(用户名),类型为。字符串型。
图17-2
这就是我们的折扣函数。假若用户名为Mohair,则我们给予九折,否则,给九五折。实际函数可能不会这么简单,这里只是一个例子。关闭函数定义窗口,存盘。把这个NVO对象取名为Cnvo_discount。
下面我们来生成非可视对象Cnvo_discount的代理对象。在用户对象画板上按右键,选中弹出式菜单的set proxy name,取名为Cpo_discount(图16-3)。在File菜单中选择Save,这样就生成了一个为名为Cpo_discount的代理对象。我们可以在Library画板检查一下,PowerBuilder是否真地生成了这个对象。注意,我们是在篇File菜单中选择Save后生成了这个对象的,如果不将之保存,那么,我们只是为这个NVO设置了一个属性,并未生成代理对象。现在,我们已有了两类对象,一个是非可视对象Cnvo_discount,它是折扣计算程序的真正实现的地方,一个完整的对象。另一个是名为Cpo_discount的代理对象,它定义了前者的接口。我们试用鼠标的右键,来编辑这个对象,可以发现,系统并不允许进行编辑,因为它并不是一真实的对象。
图17-3