在PB中动态调用函数
敬业的IT人
互联网
佚名
2008-1-4 12:43:57
目前流行的大部分应用程序中都提供了Undo功能,在PowerBuilder中也可以利用Undo()函数实现该功能。Undo()函数可用于DataWindow, EditMask, MultiLineEdit, RichTextEdit和SingleLineEdit 对象,如果只对某一个对象进行Undo操作,只需在Undo菜单项的单击事件中键入如下脚本:Objectname.undo(),但是当窗口中有多个对象,我们在编写脚本时并不知道要对哪个对象执行undo()操作,如何解决这一问题呢?在PowerBuilder中,undo()等函数只能用于可视对象,而所有可视对象均继承自系统对象类GraphicObject。因此我们可以定义一个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 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 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()
允许动态调用函数是的PowerBuilder5.0的特性之一。在程序设计中灵活运用动态函数调用的方法有助于提高所设计程序的可维护性、可重用性。进入讨论组讨论。
graphicobject go_object
DataWindow dw_object
EditMask em_object
MultiLineEdit mle_object
RichTextEdit rte_object
SingleLineEdit sle_object
go_object=getfocus()
choose 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 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()
允许动态调用函数是的PowerBuilder5.0的特性之一。在程序设计中灵活运用动态函数调用的方法有助于提高所设计程序的可维护性、可重用性。进入讨论组讨论。
- 最新文章
- PowerBuilder应用开发系列讲座(3)[01-04]
- 用PowerBuilder6.0建立B/S结构应用程序[01-04]
- PowerBuilder实用技巧八则[01-04]
- PB应用ODBC访问不同数据库[01-04]
- 如何在PB中切换中英文输入法数[01-04]
- 在C/S体系中设置工作站与服务器的时钟同步[01-04]
- 相关文章
- 在PowerBuilder中动态调用函数[01-04]
- 窗体动态效果的实现[01-04]
- PB实现数据窗口动态排序的方法[01-04]
- PB中实现数据窗口动态排序的三种方法[01-04]
- PB动态报表的实现[01-04]
- PB中关于动态工资项目问题的解决办法[01-04]
