浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

PB中dynamic调用分类的用法

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
说到DYNAMIC调用类型,我们先看看对象、属性、函数和事件的引用方法: 
  PowerBuilder 6.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 .EVENT TRIGGER Clicked()即可。
  从以上看出,DYNAMIC是指定函数或事件的一个动态调用,即当你指定一个动态调用时,函数和事件在编译时不一定要存在。你告诉编译器:相信我,此处在运行时一定会有一个合适的函数或事件。对于动态调用,PowerBuilder等到执行时才寻找函数或事件。这就给了你更大的编程灵活性。
  请比较以下的示例(摘录):
  目前流行的大部分应用程序中都提供了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("出错","不能撤消!")
  end choose
  其实我们可以用动态调用函数的方法简单地解决这一问题,即对GraphicObject对象调用undo()函数,然后在函数名前加上关键字Dynamic

全新的路由器不仅让你更稳定快速地连接无线网络,更可以让家中的智能设备连接在一起。



相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...