第15章事件.ppt

上传人:本田雅阁 文档编号:3126018 上传时间:2019-07-13 格式:PPT 页数:11 大小:133.02KB
返回 下载 相关 举报
第15章事件.ppt_第1页
第1页 / 共11页
第15章事件.ppt_第2页
第2页 / 共11页
第15章事件.ppt_第3页
第3页 / 共11页
第15章事件.ppt_第4页
第4页 / 共11页
第15章事件.ppt_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《第15章事件.ppt》由会员分享,可在线阅读,更多相关《第15章事件.ppt(11页珍藏版)》请在三一文库上搜索。

1、第15章 事件,在PowerBuilder中,系统的运行由事件(Event)驱动。事件是指作用在对象上的动作,事件处理程序是指动作发生时相应执行的一段程序。 对于每一个事件,其处理程序可有可无;对于编写了处理程序的事件,当事件被触发时,执行其处理程序,否则什么也不执行。 15.1 应用对象的事件 应用对象是应用程序的入口点。应用对象的事件及触发时机。 事件名 触发的时机 Open 当应用被打开时 Close 当用户关闭应用时 Idle 当函数被调用且经过此函数规定的秒数后,鼠标和键盘仍未动作时。 SystemError 当应用执行过程中出现系统错误时 ConnectionBegin 用于分布式

2、应用的服务器端。当客户程序试图连接到服务器程序时,此事件在服务器程序应用对象上触发。 ConnectionEnd 用于分布式应用的服务器端。当客户程序试图断开与服务器程序的连接时,此事件在服务器程序应用对象上触发。,结束 放映,第一页,上一页,下一页,最后 一页,15.2 窗口对象的事件,窗口上的事件分成两类:一类是窗口本身的事件,一类是放置在窗口上的控件的事件。 在具体的应用中,要根据需要为相应的事件编写处理程序。一般都要为窗口的Open事件编写处理程序。例如:一个窗口中放置了一个数据窗口控件,在窗口的Open事件中,要编写程序为数据窗口控件定义事务对象,其语句形式如下:dw_1.settr

3、ansobject(sqlca) 1Open事件和Activate事件 这两个事件都可在窗口打开时发生。因为窗口打开时,窗口必然被激活。激活是指当前这个窗口起作用。但是当前打开的窗口可能有多个,而处于激活的窗口只能有一个,所以,Activate事件比Open事件发生的范围要大。 2Close事件、Deactivate事件和CloseQuery事件 这三个事件的共同点是:在窗口关闭时都会触发。它们的不同点是:当执行CloseQuery事件的处理程序时,PowerBuilder会检查Message.ReturnValue的值,若为1,则不能关闭此窗口,关闭动作失败。Deactivate事件是在关闭

4、窗口和窗口由激活状态变为非激活状态时触发,因此Deactivate事件触发范围比Colse和CloseQuery都宽。,结束 放映,第一页,上一页,下一页,最后 一页,15.2 窗口对象的事件,3MouseDown事件、Clicked事件和MouesUp事件 这三个事件都只有当在窗口的空白区域操作鼠标时才有可能触发,若在窗口的控件上操作则都不会触发。但三者的触发时机是不同的。当按下鼠标左键时,MouseDown事件触发,当释放鼠标左键时,Clicked事件和MouseUp事件触发。 4Timer事件 当调用Timer函数后,每过指定的秒数,Timer事件就会触发。 也就是说,当调用了Timer

5、函数后,每隔指定的秒数此事件就会反复的发生,不只发生一次。例如函数Timer(30) 调用后,每隔30秒就会触发该窗口的Timer事件,而去执行Timer事件的事件处理程序。,结束 放映,第一页,上一页,下一页,最后 一页,15.3 窗口上控件的事件,15.3.1 窗口上控件的公共事件 1GetFocus事件和LoseFocus事件 GetFocus事件当控件得到焦点时触发,LoseFocus事件当控件失去焦点时触发。注意GetFocrs事件与Clicked事件的区别:Clicked事件是用鼠标单击控件时触发,而GetFocus事件是当按Tab键使此控件得到焦点时触发。 2DragEnter事

6、件、DragLeave事件和DragWithin事件 这三个事件的触发时机是不同的:当一个可拖动的控件刚进入控件上时触发DragEnter事件,当此可拖动控件继续在内部拖动时触发DragWithin事件,当此可拖动控件离开时触发DragLeave事件。 15.3.2 命令按钮、图片按钮、单选钮和复选框控件的事件 这四个控件都有11种事件,同窗口控件的公共事件。 15.3.3 数据窗口控件的事件 数据窗口控件是放置在窗口上的控件之一。要将数据窗口对象连接到窗口上,需要通过窗口上的数据窗口控件。数据窗口的事件指的是数据窗口控件的事件。,结束 放映,第一页,上一页,下一页,最后 一页,15.3.3

7、数据窗口控件的事件,1EditChanged事件、ItemChanged事件和ItemFocusChanged事件 EditChanged事件是在数据窗口的可编辑区的数据被修改时触发。ItemChanged事件是在数据窗口上的一个域的数据被修改并失去焦点时触发。ItemFocusChanged事件是当数据窗口中焦点改变时触发。举例如下:。 (1) 在学生成绩录入窗口w_1上放置了一个数据窗口控件dw_1,三个单行编辑器sle_1、sle_2和sle_3。 (2) 数据窗口控件的EditChanged事件处理程序为: sle_1.text=“EditChanged事件触发,时间是:”+strin

8、g(now() ItemChanged事件处理程序为: sle_2.text=“ItemChanged事件触发,时间是:”+string(now() ItemFocusChanged事件处理程序为: sle_3.text=“ItemFocusChanged事件触发,时间是:”+string(now() (3) 运行程序,输入一学生姓名后,触发ItemFocusChanged事件。 (4) 修改数据窗口内的“成绩1”列,触发了EditChanged事件,由于改变焦点,也触发了ItemFocusChanged事件。,结束 放映,第一页,上一页,下一页,最后 一页,15.3.3 数据窗口控件的事件,

9、(5) 按Tab键,调整焦点,使“成绩1”列失去焦点,由于“成绩1”列被修改且失去焦点,触发了ItemChanged事件,同时由于焦点改变,也触发了ItemFocusChanged事件。 (6) 再一次按Tab键,此时并没有修改数据,也就不会触发ItemChanged事件和EditChanged事件,而只触发了ItemFocusChanged事件。 2RowFocusChanged事件和RowFocusChanging事件 这两个事件的触发时机也有差异:当数据窗口上的当前行(鼠标所在的行)正在改变时,RowFocusChanging事件触发,改变后,RowFocusChanged事件触发。 3

10、UpdateStart事件和UpdateEnd事件 UpdateStart事件在Update( )函数调用之后,把数据窗口中的改变发送到数据库之前触发。UpdateEnd事件触发的时机是从数据窗口到数据库的更新完成之时。 15.3.4 图片控件的事件 图片控件除了11种公共事件外,还有DoubleClicked事件。DoubleClicked事件的触发时机是:当在此控件上双击鼠标时触发。,结束 放映,第一页,上一页,下一页,最后 一页,15.3.5 成组框控件的事件,成组框控件用来对窗口中的控件进行修饰或成组,很少对它进行编程。 它有三个事件:Constructor事件、Destructor事

11、件和Other事件。其触发时机与其他控件的同名事件相同。 15.3.6 单行编辑框、掩码编辑框和多行编辑框的事件 这三个控件11种公共事件中只是Clicked事件没有,但它们另外有一个Modify事件。 Modify事件是在控件的文本被改变之后,用户按了回车键、Tab键或用鼠标改变焦点到另一个控件上时触发。 15.3.7 超文本编辑控件的事件 这个控件11种公共事件中只是Clicked事件没有,另外还有一些事件请参考课本。 15.3.8 滚动条控件的事件 滚动条控件包括水平滚动条和垂直滚动条控件,这两种控件都有公共事件的除Clicked事件外的10种事件。此外,水平滚动条、垂直滚动条还分别有自

12、己的事件。,结束 放映,第一页,上一页,下一页,最后 一页,15.3.9 列表框控件的事件,PowerBuilder提供了四个列表框控件:列表框、图形列表框、下拉列表框和下拉图形列表框。它们都有公共事件中除了Clicked事件之外的10种事件。此外,下拉列表框和下拉图形列表框还有DoubleClicked事件、Modify事件和SelectionChanged事件。列表框、图形列表框还有DoubleClicked事件和SelectionChanged事件。 SelectionChanged事件是在选中列表框中的某一项时触发,而Modify事件是在列表项内容改变时触发。如果列表框是可编辑的,则用

13、鼠标选择列表中的项时,这两个事件都触发;如果用键盘输入新的内容时,只有Modify事件触发。 15.3.10 树状浏览控件的事件 1.ItemExpanded事件和ItemExpanding事件 ItemExpanding事件在树状浏览控件中的数据展开时触发。ItemExpanded事件在数据展开完成后触发。 2ItemCollapsed事件和ItemCollapsing事件 ItemCollapsing事件在树状浏览控件中的数据收缩开始时触发。 ItemCollapsed事件在数据收缩结束时触发。它们与ItemExpanding事件和 ItemExpanded事件类似,只是反向操作而以。,结

14、束 放映,第一页,上一页,下一页,最后 一页,15.3.11 列表浏览控件的事件,列表浏览控件有公共事件中所述的11种事件。此外,该控件还有自己的事件。 15.3.12 Tab控件的事件 Tab控件有公共事件中除RbuttonDown事件之外的10种事件。此外,还有自己的事件。 15.3.13 OLE控件的事件 OLE控件有公共事件中的11种事件。此外,该控件还有自己的事件。 15.3.14 用户对象控件的事件 用户对象控件有公共事件中除了Clicked事件、GetFocus事件和LoseFocus事件以外的8种事件。 15.3.15 静态文本控件和统计图控件的事件 这两种控件除有11种公共事

15、件外,还有DoubldClicked事件。 15.4 菜单事件 菜单对象的事件只有两个,即Clicked事件和Selected事件。 Clicked事件在某菜单上单击鼠标左键时触发。Selected事件当光标移入菜单条时触发。,结束 放映,第一页,上一页,下一页,最后 一页,15.5 PowerBuilder对象的用户自定义事件,下面以数据窗口控件为例介绍用户自定义事件的创建过程,我们为数据窗口定义一个MyKey事件: (1) 在窗口中选中数据窗口控件,单击画板工具条中的【Script】按钮,打开PowerScript画板 (2) 从Select Event下拉列表框中选择New Event。

16、 (3) 在Event ID中选择Windows消息号pbm_dwnkey,在Event Name中输入用户自定义事件名,在此输入MyKey,此事件是在相应对象中按任意键时触发。 (4)然后,在窗口工作区再次选择数据窗口控件,并进入编程工作区,在事件下拉列表框会出现刚才定义的事件MyKey。 (5)编写MyKey事件处理程序: sle_1.text=“数据窗口的用户自定义事件MyKey触发” (6)运行程序,把焦点调整到数据窗口控件上,按任意键,触发其用户自定义事件。 在实际应用中,可以根据需要用此方法来定义合适的自定义事件。,结束 放映,第一页,上一页,下一页,最后 一页,15.6 在程序中触发事件,事件除了在其触发时机到来时触发外,还可以在程序中通过语句来触发。比如在窗口的Timer事件处理程序中触发某按钮的Clicked事件,如:cb_enabled.triggerevent(clicked!)。 在程序中可以通过TriggerEvent()函数和PostEvent()函数来触发指定对象的特定事件,并立即执行其处理程序。 格式为:objectname.triggerevent(event,word, long),结束 放映,第一页,上一页,下一页,最后 一页,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1