在PB中动态调用函数.docx

上传人:牧羊曲112 文档编号:3379512 上传时间:2023-03-12 格式:DOCX 页数:2 大小:36.98KB
返回 下载 相关 举报
在PB中动态调用函数.docx_第1页
第1页 / 共2页
在PB中动态调用函数.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《在PB中动态调用函数.docx》由会员分享,可在线阅读,更多相关《在PB中动态调用函数.docx(2页珍藏版)》请在三一办公上搜索。

1、在PB中动态调用函数在PB中动态调用函数 目前流行的大部分应用程序中都提供了Undo功能,在PB中也可以利用Undo函数实现该功能。Undo函数可用于DataWindow, EditMask, MultiLineEdit, RichTextEdit和SingleLineEdit 对象,如果只对某一个对象进行Undo操作,只需在Undo菜单项的单击事件中键入如下脚本:Objectname.undo,但是当窗口中有多个对象,我们在编写脚本时并不知道要对哪个对象执行undo操作,如何解决这一问题呢?在PowerBuilder中,undo等函数只能用于可视对象,而所有可视对象均继承自系统对象类Grap

2、hicObject。因此我们可以定义一个GraphicObject对象的实例变量go_object,等到运行时再用getfocus函数确定具体操作对象。然后用Typeof函数确定当前对象的类型,再用Choose case语句根据不同的类型引用不同的实例变量,代码如下: graphicobject go_object DataWindow dw_object EditMask em_object MultiLineEdit mle_object RichTextEdit rte_object SingleLineEdit sle_object go_object=getfocus choose

3、case TypeOf(go_object) case DataWindow! dw_object=go_object dw_object.undo case EditMask! em_object=go_object em_object.undo case MultiLineEdit! mle_object=go_object mle_object.undo case RichTextEdit! rte_object=go_object rte_object.undo case SingleLineEdit! sle_object=go_object sle_object.undo case

4、 else messagebox(Error,Can not undo) end choose 其实我们可以用动态调用函数的方法简单地解决这一问题(只需三行代码),即对GraphicObject对象调用undo函数,然后在函数名前加上关键字Dynamic。因为对象类GraphicObject并没有undo这个对象函数,如果不加关键字Dynamic,编译时就会出现错误。使用了Dynamic关键字,PowerBuilder在编译时不检查该函数和所用参数的有效性,而到脚本运行时才去检查该函数。代码如下: GraphicObject go_object go_object=getfocus go_object.dynamic undo 在程序设计中灵活运用动态函数调用的方法有助于提高所设计程序的可维护性、可重用性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号