PB 14第14章 用户自定义对象
- 格式:ppt
- 大小:632.00 KB
- 文档页数:31
如何在PB中同时“继承”多个用户自定义数据窗口对象1. 基本功能对象: 具有单一功能的,独立的,用户自定义的对象.---- 2. 中间层对象: 把自己捕获到的事件以某种方式传递给基本功能对象实例变量, 以完成对基本功能对象相应的事件脚本的调用. 被继承, 但不继承任何其它对象.---- 另做一个用户自定义数据窗口对象,它不继承任何对象, 称之为中间层对象, 在中间层对象中为每个需要用到的基本功能对象声明一个实例对象变量, 在中间层对象的事件中去调用实例对象相应的事件. 使用时继承中间层对象, 以完成对基本对象的选择与调用.(见图一)---- 实现举例:---- 1. 基本功能对象制作:---- 新建二个数据窗口用户对象, 分别命名为: Uo_DwA, Uo_DwB . 在Uo_DwA 的Clicked 事件中写一行脚本:---- MessageBox ( ' Uo_DwA ' , ' Uo_DwA 的单击事件')---- 在Uo_DwB 的Clicked 事件中写一行脚本:---- MessageBox ( ' Uo_DwB ' , ' Uo_DwB 的单击事件')---- 2. 中间层对象制作:---- 2.1新建一个数据窗口用户对象, 命名为Uo_DwInterlayer .---- 2.2为中间层对象声明二个实例变量:---- GraphicObject Igo_BaseDwObject[] //每一个元素是一个基本对象的实例引用Integer Ii_BaseDwObjectNumber //保存元素的个数.---- 2.3. 加一个用来注册的对象函数, 用来注册基本功能对象. Uf_Register (GraphicObject a_obj[] , DataWindow adw_object)---- 函数内容:Long Ll_CirculaterIi_BaseDwObjectNumber = UpperBound (A_Obj[])FOR Ll_Circulater = 1 TO ii_basedwobjectnumberIgo_BaseDwObject[Ll_Circulater] =A_Obj[Ll_Circulater]// 下行脚本用来注册基本功能对象中的实例变量Idw_THIS (说明见下文)//Igo_BaseDwObject[Ll_Circulater].FunctionDynamic Uf_RegisterDwo ( Adw_Object)END FORReturn---- 2.4为中间层对象中加入每个基本功能对象拥有用户自定义事件, 在中间层对象的每个事件中加入如下脚本(事件Clicked):Long Ll_Circulater//调用被注册过的每个基本功能对象的相同的事件脚本FOR Ll_Circulater = 1 TO Ii_BaseDwObjectNumber//如果当前事件为EditChanged , 则把下行脚本中的Clicked(xpos , ypos , row , dwo) 部分替换为EditChanged(row,dwo,data)Igo_BaseDwObject [Ll_Circulater].EventDynamic Trigger Clicked (xpos , ypos , row , dwo)END FORReturn---- 3. 新建一个窗口, 命名为W_TestInterlayer . 在窗口中放置中间层对象: Uo_DwInterlayer . 默认控件名: Dw_1. 然后在控件Dw_1的Constructor 事件中对需要引用的基本功能对象进行注册, 即可实现引用基本功能对象的目的. 基本功能对象可以是任意个. 在Dw_1 的Constructor 事件中加入如下脚本://注册基础数据窗口对象GraphicObject Lgo_BaseDwObject []//声明一个可变长度的一维对象数组//建立对象数组元素的实例, 以便对Uo_DwA进行引用Lgo_BaseDwObject[1] = Create Uo_DwA//建立对象数组元素的实例, 以便对Uo_DwB进行引用Lgo_BaseDwObject[2] = Create Uo_DwB ////用中间层函数注册对象数组和本数据窗口对象.Uf_Register ( Lgo_BaseDwObject[] ,THIS)Return---- 4. 运行窗口W_TestInterlayer , 单击DW_1 , 会依次弹出2个消息框.---- 在实际应用中, 由于基本功能对象是被引用的而非继承, 所以基本功能对象脚本中的代词THIS为空, 为此:---- 需要在基本功能对象中声明一个实例变量: DataWindow Idw_THIS .---- 加一个注册函数用来为实例变量Idw_THIS 赋值. 函数名称Uf_RegisterDwo (DataWindow , Adw_THIS) . 函数内容:Idw_THIS = Adw_THISReturn---- 对象中所有对数据窗口操作的函数前都必须加上“Idw_THIS.”, 进行完全路径的引用. ---- 因为这些基本功能对象被继承过,为了向前兼容, 所以要在它们的Constructor 事件中写入如下脚本:IF Not IsValid (Idw_This) THENIdw_This = THISEND IFRetrun---- 以便对实例变量Idw_THIS 自动赋值.。
pb user object 的用法PB User Object 的用法PB User Object(以下简称”PBUO”)是在PB(Product Builder)平台上用于表示和管理用户的重要对象之一。
在这篇文章中,我们将详细讲解一些PBUO的用法。
创建 PBUO要创建一个PBUO,可以使用以下代码:PBUO myUser = new PBUO();这将创建一个空的PBUO对象,并将其分配给名为myUser的变量。
设置 PBUO 的属性PBUO对象有许多可设置的属性,下面是一些常用的属性及其设置方法:设置用户名("john123");可以通过调用setUsername方法来设置PBUO的用户名。
在示例中,用户名被设置为john123。
设置密码("passw0rd");要设置PBUO的密码,可以使用setPassword方法。
在示例中,密码被设置为passw0rd。
设置电子邮件("");可以使用setEmail方法设置PBUO的电子邮件地址。
在示例中,电子邮件地址被设置为``。
获取 PBUO 的属性PBUO对象的属性可以使用相应的getter方法获取。
获取用户名String username = ();通过调用getUsername方法,可以获取PBUO的用户名并将其赋值给username变量。
获取电子邮件String email = ();可以使用getEmail方法获取PBUO的电子邮件地址,并将其赋值给email变量。
验证用户名和密码要验证PBUO的用户名和密码是否匹配,可以使用以下方法:boolean isValid = ("john123", "passw0rd");checkCredentials方法将用户名和密码作为参数,并返回一个布尔值,表示用户名和密码是否匹配。
保存和更新 PBUO要将PBUO保存到数据库中,可以使用以下方法:();这将把当前的PBUO对象保存到数据库中。
pb的customclass创建流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!PB(Protocol Buffers)中CustomClass的创建流程详解Protocol Buffers(简称PB)是Google开发的一种数据序列化协议,它允许开发者定义数据结构,然后生成可以在多种语言中使用的代码,用于序列化和反序列化这些数据。
14.1 名词14.1.1 注释行注释行用来书写说明,它有两种写法:以“//”开头,其后书写注释内容,常用于单行注释。
“/*…*/”中间的部分为注释,便于多行说明。
例如://这是一个单行注释INTEGER II = I+1/*这是多行注释这是多行注释这是多行注释这是多行注释*/14.1.2 标识符标识符是指在脚本中使用的变量、标号、窗口、控制、菜单以及引用的对象的名称。
它的命名规则有:1. 必须一字母开头2. 最长40个字符,并且中间不能插入空格。
3. 区分大小写4. 表示符可以有字母、数字和如下的特殊字符组成:短划线“-”、下划线“_”、美元符号“$”,号码符号“#”和百分符号“%”。
例如:butName,main_win,code2都是合适的标识符。
14.1.3 标号尽管在我们不提倡在程序设计当中使用GOTO语句,但是POWER SCRIPT仍然支持它。
可以使用标号来指明转移的地址。
标号的写法是在标识符的后面加上冒号。
例如:ADDRESS1:PROCESSDATA()...或者ADDRESS2:PROCESSDATA()14.1.4 特殊字符在字符串当中可以包括特殊字符。
它们的写法如下:新行(NEWLINE):~n制表符(TAB):~t垂直制表(VERTICAL TAB):~v回车(CARRIGE RETURN):~r换行(FORMFEED):~f退格(BACKSPACE):~b双引号:~单引号:~弯曲符:~~也可以使用在~符号的后面跟上一个数的方式来表示这个数值对应的ASCII字符。
如~888,~ h16(十六进制),~o999(八进制)。
14.1.5 空值空值(NULL)是在与数据库交换数据的时候使用的一种特殊值。
这与空字符、数值零、和日期00000000不同。
空值既不是零,也不是非零的任何数值。
14.1.6 保留字保留字是指被POWER BUILDER内部使用,而不能作为标识符的单字,它们有:alias,and,autoinstantiate,call,case,choose,close,commit,connect,constant,contin ue,create,cursor,declare,delete,describe,descriptor,destroy,disconnect,do,dynamic,else,el seif,end,enumerated,event,execute,exit,external,false,fetch,first,for,forward,from,funct ion,global,goto,halt,if,immediate,indirect,insert,into,intrinsic,is,last,library,loop,next, not,of,on,open,or,parent,post,prepare,prior,private,privateread,privatewrite,procedure,pr otected,protectread,protectwrite,prototypes,public,readonly,ref,return,rollback,rpcfunc, select,selectblob,shared,static,step,subroutine,super,ssytem,systemread,systemwrite,th en,this,to,trigger,true,type,until,update,updateblob,using,varibles,while,with,within,_ debug14.1.7 this代名词this代表窗口、用户对象、菜单、应用对象或者控制对象自身。