PB 14第14章 用户自定义对象

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选好标准对象类型后, 将打开用户对象画板。 该界面和创建窗口的 界面相似。在这里可 以设置 CommandButton的属 性如Text、字体、控 件大小等作为该用户 对象的默认值,还可 以定义用户函数和用
14.1.1 创建标准可视用户对象
14.3 用户对象使用编程实例
l 一个事件是ue_keyenter,事件号为pbm_dwnprocessenter。该事件 的主要功能是按回车键可以跳到下一个输入项,不是下一行。当在 最后一行的最后一列按回车键时,将增加一个空行。 l 一个事件是ue_keyarrow,事件号为pbm_dwntabdownout.。该事件 的主要功能是在最后一行按向下的箭头键↓时,增加一个空行。 l 自定义函数是uf_getcolnumber(),无入口参数,返回值表示数据窗 口中的列数。该函数的功能就是求当前数据窗口中的列的数目。 l 在该用户对象的自定义函数uf_getcolnumber()中输入以下代码: //返回当前数据窗口的列数 long row int col,oldcol,ret row=this.getrow() oldcol=this.getcolumn() //oldcol为当前列 if row<1 then return 0 //数据窗口为空则返回
给该用户对象定义一个用户事件以响应用户的回车键操作。用户 事件名为“ue_enter”,事件号选“pbm_keydown”。
14-4 在用户对象中定义用户事件
14.1.1 创建标准可视用户对象
在该事件中输入代码: if KeyDown(KeyEnter!) then //如果是回车键,则触发鼠标单击事件 this.TriggerEvent(Clicked!) end if 保存该用户对象,名为u_commandbutton。 定义了一个可视用户对象u_commandbutton,该对象除具备标准 的CommandButton命令按钮的属性、事件、函数外,还有用户自 定义事件ue_keyenter,当焦点落在该控件上时,用户按回车键将 触发该事件。
14.2.3 创建定制类用户对象
定制类用户对象是用户自己设计的对象,用于封装不需要可视特 性的处理过程。这些对象并不继承某个对象或控件,完全由用户 通过定义实例变量、函数、事件来实现。 定 制 类 用 户 对 象 只 有 两 个 系 统 预 定 义 事 件 : Constructor 和 Destructor。其创建过程和使用方法完全类似于标准类用户对象。 要将用户对象删除,只有在Library工作区才能实现。方法是打开 Library工作区,右击要删除的对象,出现弹出式菜单,选择 Delete,打开一个提示框,选择Yes,删除所选的对象。参见PBL 库管理器。
14.2.2 使用类用户对象
使用类用户对象时,需要在代码中创建它的一个实例 。 步骤为: (1) 说明类用户对象类型的变量,用CREATE语句创建该对象的 一个实例; (2) 在变量的整个作用域中,代码都能访问该对象的属性、事件、 函数,就像使用系统预定义对象那样(比如事务处理对象 SQLCA); (3) 不再使用该用户对象时,使用DESTROY语句删除该对象,以 释放它所占的内存。
14.3 用户对象使用编程实例
(3) 再创建标准可视用户对象,也是从标准控件commandbutton命令 按钮继承来的。给该用户对象增加自定义事件ue_keyenter,事件 号为pbm_keydown。该用户对象能够响应鼠标和回车键操作,并 关闭控件所在的窗口。 l 在该用户对象的自定义事件ue_keyenter中输入以下代码: if KeyDown(KeyEnter!) then //如果是回车键,则触发鼠标单击事件 this.TriggerEvent(Clicked!) end if l 在该用户对象的事件click中输入以下代码: close(parent) //关闭控件所在的窗口 保存该用户对象,名为u_cb_return。 (4) 创建标准可视用户对象,它是从标准控件datawindow数据窗口继 承来的。给该用户对象增加两个自定义事件和一个自定义函数:
图14-1 创建用户对象
14.1.1 创建标准可视用户对象
打开标题为“Select Standard Visual Type”的窗口,选择所要的对象 类型,点击Ok按钮。这里我们选择commandbutton来定制一个命令 按钮用户对象。
图14-2 选择对象类型
14.1.1 创建标准可视用户对象
图14-6 选择用户对象
14.1.3 修改用户对象
修改用户对象。选择 工具栏的Open图标, 打开标题为“Open” 的窗口。 2.选择pbl库 在Application Libraries中选择要修 改的用户对象所在的 pbl库文件,在对象类 型Object Type中选择 User Objects,选择要 修改的用户对象,点 击OK按钮或直接双击 所选的用户对象,将 打开用户对象定义画 板,如前图14-3所示。
第14章 用户自定义对象
14.1 可视用户对象 14.2 类用户对象 14.3 用户对象使用编程实例
14.1.1 创建标准可视用户对象
标准可视用户对象在现有控件基本功能的基础上增加应用程序需要的功能。继承 了原始控件的各种特征,包括属性、事件和函数。 例如,命令按钮只能用鼠标点击,而不响应回车键,可以利用标准可视用户对象 来定制一个用户 对象,既能用鼠 标点击,又可以 按回车键操作。 点击主窗口的工 具栏图标按钮 New 或 选 择 主 菜 单File的New子菜 单,将打开标题 为“New”的窗口, 选择Object页。
注意: 该可视用户对象中的控件的大小、位置等属性不能在窗口上改变, 而只能在如图14-9所示的定制可视用户对象画板中修改。 创建的定制可视用户对象作为一个整体来使用,与其它用户对象的 一个明显差别是:定制可视用户对象中包括了多个控件。窗口中的 代码控制定制可视用户对象中的控件时,需要用“用户对象名+控件 名+属性或函数”这样的格式。 例如: uo_1.cb_ok.text=”确定” //cb_ok是用户对象中的一个控件 st_1.text=uo_1.sle_1.text //sle_1是用户对象中的一个控件,st_1 是窗口上的一个控件 uo_1.lb_1.additem(sle_2.text) //lb_1是用户对象中的控件,sle_2是窗 口上的控件
14.2.1 创建标准类用户对象
选择主窗口工具栏上的图标按钮New 或选择主菜单File的New子 菜单,将打开标题为“New”的窗口,选择Object页。
图14-12 定义标准类用户对象
14.2.1 创建标准类用户对象
在图14-12的 Object页中选择Standard Class项,点击OK或直接 双击Standard Class项,打开标题为“Select Standard Class Type” 的窗口来选择创建的用户对象所继承的内部系统对象。
图14-8 选择定制可视用户对象
14.1.4 创建定制可视用户对象
定制可视用户对象画板。在左上角的窗口上放置所需的控件和已 定义的可视用户对象。还可以定义用户函数和用户事件,并给某 些事件编写代码。
在这里放置控件和 已定义的可视用户 对象
图14-9 定制可视用户对象画板
14.1.4 创建定制可视用户对象
图14-11 外部可视用户对象画板
14.1.5 创建外部可视用户对象
图14-11中,在LibraryName中输入外部用户对象所在的DLL文件 名,或者单击Browse按钮选择DLL文件;在Class Name编辑框中 键入DLL中的注册类名(该类名通常由生产DLL的厂商提供);在 “Text”编辑框中输入显示在控件上的文本(并非都需要此项); 根据需要设置其它属性;说明用户对象所需的函数、事件、变量、 结构;编写用户对象的各种事件处理程序;最后保存用户对象。 定义了外部可视用户对象后,就可以在窗口、定制可视用户对象 等多个地方运用该对象了。 注意:要创建外部可视用户对象,必须知道外部用户对象所在的 DLL文件名和注册类名。
14.2.2 使用类用户对象
例如: 我们已经创建了一个标准类用户对象u_datastore,它从数据存储对 象Datastore继承得到,那么代码中可以这样使用: u_datastore myds //声明u_datastore类型的变量myds myds = CREATE u_datastore //创建用户对象实例myds myds.DataObject = „d_user_search‟ //将数据窗口对象与类用 户对象联系起来 myds.SetTransObject(SQLCA) //设置类用户对象使用的事务对象 ret = myds.Retrieve(math) //检索数据据 ...... //应用程序所需的其它处理 DESTROY myds //使用后删除用户对象
1.选择目标
4.选择要修改的用 户对象 3.选择User Objects
图14-7 打开用户对象
14.1.4 创建定制可视用户对象
定制可视用户对象是将多个控件以及可视用户对象组合成一个整体, 完成一定的功能和操作。选择主窗口工具栏上的图标按钮New 或选择 主菜单File的New子菜单,将打开标题为“New”的窗口,选择Object 页。
14.1.5 创建外部可视用户对象
使用外部控件的目的通常是为了完成PB本身难以完成或不支持的功能。 选择主窗口工具栏上的图标按钮New 或选择主菜单File的New子菜单,选择 Object页。
图14-10 创建外部可视用户对象
14.1.5 创建外部可视用户对象
在图14-10 Object页中选择External Visual项,点击OK按钮或直 接双击External Visual项,将打开外部可视用户对象画板。
应该设计一个统一的按钮,无须在每个用到的地方分别编程。使 用用户对象可以方便的解决问题。 实例创建步骤如下: (1) 创建一个ustudent.pbl,其ApplicationObject为ustu,再建一 个窗口w_uobject。 (2) 创建标准可视用户对象,它是从标准控件commandbutton命 令按钮继承来的。给该用户对象增加自定义事件ue_keyenter,事 件号为pbm_keydown。该用户对象能够响应鼠标和回车键操作。 在该用户对象的事件ue_keyenter中输入以下代码: if KeyDown(KeyEnter!) then //如果是回车键,则触发鼠标单击事件 this.TriggerEvent(Clicked!) end if 保存该用户对象,名为u_commandbutton。
图14-13 选择标准对象类
14.2.1 创建标准类用户对象
选择所要的对象类,点Ok,打开标准类用户对象定义画板。 类用户对 象是不可见的,不能在它上面布置任何的可视控件。为这个对象封装 属性、函数和事件以及变量等,编写用户对象所需的各种事件处理程 序。最后保存用户对象。
图14-14 标准用户类画板
第14章 用户自定义对象
用户对象具有下述优势: (1) 避免了在应用程序的不同地方编写功能相同或相近代码的麻烦, 提高了应用程序的可维护性。 (2) 用户对象可以把一组总在一起使用的可视控件组合在一起,构成 一个完成特定功能的控件,应用程序可以随时使用它。 (3) 用户对象提供了构造具有一致外观的可视部件的方法。 (4) 用户对象能够把相关功能封装在一起。 (5) 用户对象允许开发人员扩展某些对象的功能。 用户对象的命名一般以“u_”为前缀,用户对象控件或实例的命名 一般以“uo_”为前缀。
14.1.2 使用可视用户对象
可视用户对象定义 好后,就可以象标准 控 件 那 样 使 用。 在 窗 口 打 开 后, 点 击 工具栏上的控件工 具箱中的用户对象 User Object图标按 钮。
用户对象
图14-5 控件工具箱
14.1.2 使用可视用户对象
将出现标题为“Select Object”的窗口,在其 中列出了当前pbl文件 中所有的用户对象,选 择一个用户对象,点击 OK按钮或直接双击所 选的用户对象。这里选 u_commandbutton。 调整用户对象在窗口中 的位置、大小,并设置 必要的属性。这样,当 焦点落在该控件上时, 按回车键将触发Click事 件。
14.3 用户对象使用编程实例
在用户自定义事件的编程实例中,要求当焦点落在命令按钮上时,按 回车键能代替鼠标。在数据窗口中,按回车键可以跳到下一个输入项, 而不是下一行。在最后一行的最后一列按回车键时,将增加一个空行。 在最后一行按向下的箭头键↓时,也增加一个空行。
图14-15 用户对象使用实例
14.3 用户对象使用编程实例
相关文档
最新文档