PB09第9章用户自定义事件

PB09第9章用户自定义事件

ID:46947431

大小:298.00 KB

页数:15页

时间:2019-12-01

PB09第9章用户自定义事件_第1页
PB09第9章用户自定义事件_第2页
PB09第9章用户自定义事件_第3页
PB09第9章用户自定义事件_第4页
PB09第9章用户自定义事件_第5页
资源描述:

《PB09第9章用户自定义事件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章用户自定义事件应用程序需要某种特殊控制、需要在特定情况下执行某段代码、对象间需要灵活的通讯,可以根据需要定义自己的事件来完成这些特殊需求,这类事件就称用户事件。在下列情况下经常使用用户事件:(1)解决对象与窗口之间的通讯问题。用户事件可以通过参数进行信息传递。(2)响应特殊操作,这些操作没有相应的PowerBuilder预定义事件。(3)支持用户通过多种方式完成同一个功能。第9章用户自定义事件9.1定义用户事件9.2用户事件号9.3删除用户事件9.4触发用户事件9.5用户事件编程实例9.1定义用户事件定义用户事件,首先要选定好所在的对象,然后打开Script

2、窗口,再选择NewEvent,如图9.1,将出现事件定义窗口,如图9.2。1.选择对象2.选择NewEvent图9.1定义用户事件图9.2定义用户事件属性1.输入用户事件名2.选择用户事件号9.1定义用户事件可以为用户事件定义参数及返回值。在ReturnType中选择返回值类型,在ArgumentType中选择参数类型,在ArgmentName中输入参数名。在图9.2中,右击,弹出一个菜单:定义带参数的用户事件,其事件号必须选None,若选择其它的事件号,则定义的参数无效。定义用户事件时,选择的事件标识应与所在的对象吻合,否则用户事件不起作用。用户事件定义好后,可

3、以象对象的其它标准事件一样编程和使用。图9.3增加、插入、删除参数9.2用户事件号表9.1列出了部分常用事件标识的前缀及其含义9.3删除用户事件定义的用户事件号及名称不能更改,只能删除。在该事件的代码编辑窗口,点击鼠标右键,将弹出一个菜单,选择DeleteEvent,将删除该事件。注意:对该删除操作不作提醒,一经选择DeleteEvent,就立刻删除,因此若事件已有代码,则应小心。只有用户事件才能删除。图9.4删除用户事件9.4触发用户事件定义了用户事件后,就需设计事件处理程序,没有事件处理程序,即使发生了该事件,应用程序也不做任何处理。如果选用的事件号对应于某个

4、Window消息,则事件何时发生,将由系统决定。但若选用的事件号为pbm_custom01到pbm_custom75,即不对应于任何Windows消息,则必须编程时使用代码触发该事件。触发用户事件有三种格式,前两种是:object_name.TriggerEvent(event_name)object_name.PostEvent(event_name)其中:object_name为对象名;event_name为事件名,对系统事件而言,是枚举类型,对用户自定义事件而言,是一个字符串。例如:w_1.TriggerEvent(Clicked!)//触发窗口w_1的鼠标

5、单击事件w_1.TriggerEvent(“u_key”)//触发窗口w_1的用户自定义事件u_keyTriggerEvent和PostEvent的区别在于:TriggerEvent立即触发该事件,而PostEvent则把事件排在事件队列的末尾。9.4触发用户事件在定义用户事件时,可以定义事件参数。但TriggerEvent和PostEvent不能带事件参数(但可以给Message传送用户消息),因此需用下面的格式触发:object_name.[Trigger

6、Post][Static

7、Dynamic]EVENTevent_name([para_list])其中:

8、lobject_name是事件所属对象的对象名lTrigger和Post选项只能选择一个,缺省时为Trigger。Trigger表示立即执行指定事件的事件处理程序,然后再执行该语句后面的代码;Post表示将该事件放置到对象的事件队列中,然后继续执行该语句后面的代码。lStatic和Dynamic选项只能选择一个,缺省时为Static。Static表示编译时指定事件必须存在,系统要进行返回值类型检查;Dynamic表示编译时指定事件可以不存在,系统把返回值类型检查推迟到应用程序运行时进行。lEVENT是关键字,表示后面的event_name是个事件名而不是函数。lp

9、ara_tlist是事件参数列表,多个参数时参数之间用逗号分隔。如果用户事件定义了参数,只能使用上述格式触发事件,而不能使用函数TriggerEvent()或PostEvent()。例如:cb_1.EVENTClicked()//触发控件cb_1的鼠标单击事件w_1.Eventu_display(4,“math”)//触发窗口w_1的用户自定义事件u_dispaly,它带两个参数。只能用这种方法触发9.5用户事件编程实例希望当焦点落在命令按钮上时,按回车键能代替鼠标。在数据窗口中,按回车键可以跳到下一个输入项,而不是下一行。当在最后一行的最后一列按回车键时,将增加

10、一个空行。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。