目前流行的大部分应用程序中都提供了Undo功能,在PowerBuilder中也可以利用Undo()函数实现该功能。Undo()函数可用于DataWindow,EditMask,MultiLineEdit,RichTextEdit和SingleLineEdit对象,如果只对某一个对象进行Undo操作,只需在Undo菜单项的单击事件中键入如下脚本:Objectname.undo(),但是当窗口中有多个对象,我们在编写脚本时并不知道要对哪个对象执行undo()操作,如何解决这一问题呢?在PowerBuilder中,undo()等函数只能用于可视对象,而所有可视对象均继承自系统对象类GraphicObject。因此我们可以定义一个GraphicObject对象的实例变量go_object,等到运行时再用getfocus()函数确定具体操作对象。然后用Typeof()函数确定当前对象的类型,再用Choosecase语句根据不同的类型引用不同的实例变量,代码如下:
graphicobjectgo_object
DataWindowdw_object 财,软联盟,fs119.net
EditMaskem_object
MultiLineEditmle_object
RichTextEditrte_object
SingleLineEditsle_object
GraphicObjectgo_object
go_object=getfocus()
go_object.dynamicundo()
DataWindowdw_object 财,软联盟,fs119.net
EditMaskem_object
MultiLineEditmle_object
RichTextEditrte_object
SingleLineEditsle_object
go_object=getfocus()
choosecaseTypeOf(go_object)
caseDataWindow!
dw_object=go_object
dw_object.undo()
caseEditMask!
em_object=go_object
em_object.undo()
caseMultiLineEdit!
mle_object=go_object
mle_object.undo()
caseRichTextEdit!
rte_object=go_object
rte_object.undo()
caseSingleLineEdit!
sle_object=go_object
sle_object.undo()
caseelse
messagebox("Error","Cannotundo")
endchoose 财管,家园,fs119.net
其实我们可以用动态调用函数的方法简单地解决这一问题(只需三行代码),即对GraphicObject对象调用undo()函数,然后在函数名前加上关键字Dynamic。因为对象类GraphicObject并没有undo()这个对象函数,如果不加关键字Dynamic,编译时就会出现错误。使用了Dynamic关键字,PowerBuilder在编译时不检查该函数和所用参数的有效性,而到脚本运行时才去检查该函数。代码如下:
财,管家园,fs119.net
go_object=getfocus()
go_object.dynamicundo()
允许动态调用函数是的PowerBuilder5.0的特性之一。在程序设计中灵活运用动态函数调用的方法有助于提高所设计程序的可维护性、可重用性。
以上程序在PowerBuileer5.0,Window95环境下运行通过。
财软联 盟 fs119.net
财软.联盟.fs119.net
相关文章
PB中编写10进制到其他进制的转换 用PowerBuilder开发多媒体播放器 Powerbuilder中利用API实现动画 用PowerBuilder6.0建立B/S结构的 在POWERBUILDER中使用WINSOCK控 用PB5设计串口通讯程序 使用PB7.0开发Web应用 在PB中使用VC编制的DLL 在PowerBuilder中动态调用函数 PB中关于动态工资项目问题的解决 PB/Sybase系统开发中的数据库转 PB环境下分布式应用程序的开发 PowerBuilder实用技巧八则 在PB中用OLE存取blob类型数据 深入了解PowerBuilder的数据窗口 PowerBuilder数据窗口编程技巧十 实现PB数据窗口的多表更新 PB中数据窗口的精确页面打印技术 在PB7.0中实现多数据窗口的连续 在PB中如何实现数据模糊查询 PB中用WindowsAPI制作位图菜单 树形目录在PB中的实现与应用 用PowerBuilder实现多层C/S系统 多层C/S系统及其在PB中的应用
Google.cn搜索关键字:
函数 调用 动态 对象 go_object case undo GraphicObject
Google.cn搜索相关文章:
谷歌中搜索全球网 在PowerBuilder中动态调用函数
百度中搜索 在PowerBuilder中动态调用函数
谷歌中搜索www.fs119.net 在PowerBuilder中动态调用函数
上一篇:PB中关于动态工资项目问题的解决办法
Google.cn搜索相关文章:
谷歌中搜索全球网 在PowerBuilder中动态调用函数
百度中搜索 在PowerBuilder中动态调用函数
谷歌中搜索www.fs119.net 在PowerBuilder中动态调用函数
下一篇:在PB中使用VC编制的DLL
精品课程推荐
热点专题
最新主题
推荐大折扣培训课程