`
JAVA海洋
  • 浏览: 618033 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

PB中dynamic调用类型的用法

阅读更多
PB中dynamic调用类型的用法

说到DYNAMIC调用类型,我们先看看对象、属性、函数和事件的引用方法:

PowerBuilder6.0应用程序的开发过程实际上就是各种对象的定义和使用过程。所有对象都有名称,并通过名称相互区分。在PowerScript中,访问对象的属性、函数、事件的方法很简单,就是使用圆点作为标记符,具体来说,访问对象属性的格式为:

对象名.对象属性

例如,把单行编辑框sle_name的用户输入内容送到字符串变量UserEnter的语句可以写成:

UserEnter=sle_name.Text

其中,sle_name是一个单行编辑框对象的名称,Text是单行编辑框的Text属性。

程序中访问对象的函数与事件的格式为:

{objectname.}{type}{calltype}{when}functionname({argumentlist})

其中,大括号所括成分根据情况可以省略,各成分的意义为:

objectname是对象名;

type取值为FUNCTION或EVENT,用于指明访问函数还是事件,缺省值为FUNCTION;

calltype用于指明PowerBuilder查找函数的时机,有效取值为:

STATIC(缺省值):编译时查找函数,若不存在,产生编译错误
DYNAMIC:程序运行时查找函数,若不存在,产生运行错误

when用于指明函数或事件是立即执行呢还是当前程序段执行完毕后执行,取值为:

TRIGGER(缺省值):立即执行
POST:当前程序段执行完毕后执行

functionname指明调用的函数或事件名称

argumentlist给出函数或事件的参数

例如,想把输入焦点移动到单行编辑框sle_name上,程序中写上语句:sle_name.SetFocus()即可。想立即执行按钮cb_name的单击事件处理程序,那么写上语句:cb_name.EVENTTRIGGERClicked()即可。

从以上看出,DYNAMIC是指定函数或事件的一个动态调用,即当你指定一个动态调用时,函数和事件在编译时不一定要存在。你告诉编译器:相信我,此处在运行时一定会有一个合适的函数或事件。对于动态调用,PowerBuilder等到执行时才寻找函数或事件。这就给了你更大的编程灵活性。

请比较以下的示例(摘录):

目前流行的大部分应用程序中都提供了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

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("出错","不能撤消!")

endchoose

其实我们可以用动态调用函数的方法简单地解决这一问题,即对GraphicObject对象调用undo()函数,然后在函数名前加上关键字Dynamic

分享到:
评论

相关推荐

    pb9.0调用c#dll

    在PB中实例化这个COM对象,然后就可以像调用PB内置函数一样调用C# DLL的方法了。例如,如果你有一个名为`MyMethod`的方法,可以这样调用: ```pb COMObject myCom = Create COMObject myCom.MyMethod() ``` ...

    pb9调用vc的dll

    5. **创建PB9的DLL接口**:在PB9中,创建一个动态链接库对象(Dynamic Link Library Object,DLL Object)来封装对VC DLL的调用。定义函数原型,指定参数类型和返回值。 6. **导出函数规范**:在VC工程中,需要使用...

    PB调用VC创建的DLL在MIS中的设计与实现1

    ### PB调用VC创建的DLL在MIS中的设计与实现 #### 摘要与背景 随着信息技术的发展,管理信息系统(MIS)在各行业的应用越来越广泛。在MIS的开发过程中,通常需要利用OLE技术来实现Excel报表等功能。虽然Power...

    PB 试题及答案(PB要点,简答题,基础题,带答案)

    函数的动态调用是使用动态方法调用函数,例如:parent.FUNCTION DYNAMIC TRIGGER wf_process()。静态调用优点是效率高,但缺点是不能修改函数的参数;动态调用优点是可以修改函数的参数,但缺点是效率较低。 PB ...

    PB9计算文件MD5

    开发人员可以利用这种方法在PB9应用中集成文件完整性检查,确保数据传输或存储过程中没有发生意外的篡改。通过学习和理解这个案例,我们不仅可以了解PB9与DLL的交互,还能深入理解MD5算法在实际开发中的应用。

    PB调用VC创建的DLL在MIS中的设计与实现

    ### PB调用VC创建的DLL在MIS中的设计与实现 #### 摘要与背景 随着信息技术的发展,管理信息系统(MIS)在各行业的应用越来越广泛。在MIS的开发过程中,通常需要利用OLE技术来实现Excel报表等功能。PowerBuilder...

    PB获取拼音码

    `GetPY.dll`是一个动态链接库(Dynamic Link Library),在Windows操作系统中,DLL文件用于封装可重用的代码和数据,供其他程序调用。在这个场景下,`GetPY.dll`很可能提供了获取汉字拼音简码的函数或方法。开发者...

    串口通讯 for PB_20200323_pb_PB串口通讯_

    1. **串口通讯DLL**:DLL(Dynamic Link Library)是Windows操作系统中的一种共享库,它包含了一组可执行函数和资源,可供多个程序同时调用。在本案例中,串口通讯DLL是一个实现了串行通信功能的动态链接库,可能...

    pb9二维码示例-OCX和DLL两种

    6. **示例代码**:压缩包中的文件可能包含了如何在PB9中使用OCX和DLL的示例代码,包括创建对象、设置参数、调用方法等步骤,这对于初学者来说是非常有价值的参考资料。 7. **应用领域**:这种二维码处理能力适用于...

    pb加密解密哈希库

    demo通常是一段简短的代码,展示了库的使用方法和调用接口,帮助开发者在不深入研究整个库的情况下,快速上手并集成到自己的应用中去。通过这种方式,开发者可以将加密解密哈希库的功能嵌入到自己的软件产品中,从而...

    PB二维码生成

    1. **动态库调用**:在PB中,动态库(Dynamic Link Library, DLL)是共享代码的方式,允许多个程序同时使用一个功能。当PB不支持直接生成二维码时,我们可以编写或使用已经存在的DLL文件,它包含专门用于生成二维码...

    pb生成二维码.zip

    4. **调用DLL**:在PB10.5中,我们需要通过`LoadLibrary`、`GetProcAddress`等函数来加载和使用DLL。首先,加载DLL文件到内存,然后获取DLL中用于生成二维码的函数指针。最后,调用这个函数,传递必要的参数(如...

    PB生成二维码

    在PB中编写代码,调用之前定义的DLL方法,传入数据和可能的参数,如二维码的纠错级别、大小等。DLL会处理这些信息并生成二维码的图像。最后,你可以在PB的数据窗口或者控件中显示这个生成的二维码图像,或者将其保存...

    pb开发笔记心得

    通过以上描述,我们可以看到 PB 开发中的一些关键点:SQL 语句的执行、动态游标的使用、数据窗口的交互、窗口事件处理以及数据库的连接与断开。尽管 PB 的使用可能不如当今的现代 Web 开发框架那么流行,但这些基础...

    PB提取DLL中图片

    标题 "PB提取DLL中图片" 描述了一个使用PowerBuilder(PB)编程工具从动态链接库(DLL)中抽取图片资源并进行显示的过程。这个过程涉及到了软件开发中的资源管理、图像处理以及API调用等技术知识。下面我们将详细...

    PB6.5开发笔记

    本文档详细介绍了在PB6.5中进行标准SQL调用和循环调用的方法,并提供了具体的代码示例。此外,还介绍了如何使用DataWindow控件进行数据检索和显示。这些方法可以帮助开发者更高效地完成PB应用中的数据库操作任务。

    PB获取网卡MAC地址

    1. **Windows API调用**:在Windows操作系统下,可以使用`GetAdaptersAddresses`函数来获取系统中所有网络适配器的信息,其中包括MAC地址。首先,需要定义相应的数据结构,如`IP_ADAPTER_ADDRESSES`,然后使用`...

    PB中动态生成数据窗口的关键代码.rar

    - 动态数据窗口(Dynamic Data Window, DDW)是PB中的一种高级特性,它允许程序员在运行时构建和修改数据窗口对象,而无需在设计时预定义所有的列和布局。 - 动态数据窗口主要应用于那些数据结构不固定或者需要...

    PB9.0动态链接库

    动态链接库(DLL,Dynamic Link Library)是一种Windows操作系统中的共享代码库,允许多个程序同时使用相同的代码,从而节省内存资源并促进代码重用。 在PowerBuilder 9.0中,动态链接库主要包括以下几类知识点: ...

    Java调用动态链接库通用方法.doc

    例如,在Java程序中调用C语言编写的动态链接库(Dynamic Link Library,简称DLL),能够充分利用底层语言的性能优势,同时保持Java程序的高级特性。本文将详细介绍如何实现这一过程。 #### 二、动态链接库概述 ...

Global site tag (gtag.js) - Google Analytics