首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

散分,自个儿根据一些资料整理的pb常用事件

2013-01-04 
散分,自己根据一些资料整理的pb常用事件前一段时间,我还觉得pb就dw和pfc,事件和函数这几个重要,经过一段时

散分,自己根据一些资料整理的pb常用事件
前一段时间,我还觉得pb就dw和pfc,事件和函数这几个重要,
经过一段时间的学习,发现不是那么一回事,或许现在我对pb的认知也很片面。
我现在觉得dw和api,事件和函数是最重要的了。
或许将来我会觉得web也很重要,嘿嘿......
pfc虽好,但是别人的东西,会约束自己的开发思维,什么不爽。
等我什么把他变成的自己的东西,它就很重要了。
上一次发了个函数篇,这次来个事件篇,
正好这几日没什么任务,就把他整理出来。
欢迎大家指出不当之处。



create by amu on 2012-08-16

----------------------------------------------------

1.window中的事件
   事件名                  触发的时机
01.Activate            在窗口激活之前触发
02.Clicked             当用户用鼠标单击窗口的空白区域(没有控件的区域)时触发
03.Close               当关闭窗口时触发
04.CloseQuery          当清除或关闭窗口时触发。然后检查Message.ReturnValue的值,若为1,则窗口不能关闭
05.Deactivate          当窗口变为非活动状态时触发
06.DoubleClicked       当用户双击窗口的空白区域时触发
07.DragDrop            当一个可拖动的控件被拖动到窗口上时触发
08.DragEnter           当一个可拖动的控件进入窗口时触发
09.DragLeave           当一个可拖动的控件离开窗口时触发
10.DragWithin          当一个可拖动的控件在窗口内部拖动时触发
11.Hide                在窗口被隐藏时触发
12.HotLinkAlarm        在DDE中服务器应用已经发送了新的数据,客户DDE应用已经接收到这些数据时触发
13.Key                 当用户击了一个键且插入点不在RichTextEdit编辑控件或数据窗口控件时触发
14.MouseDown           当用户在窗口的空白区域按下鼠标左键时触发
15.MouseMove           当鼠标在窗口内移动时触发
16.MouseUp             当用户在窗口的空白区域释放鼠标左键时触发
17.Open                当程序调用以此窗口为参数的Open函数时,此事件在该窗口打开之后,显示之前触发
18.Help                .........
19.Other               当一个非PowerBuilder事件的Windows信息发生时触发
20.RButtonDown         在窗口的空白区域单击鼠标右键时触发
21.RemoteExec          当一个DDE客户应用发送了一个命令时触发
22.RemoteHotLinkStart  当一个DDE客户应用开始一个热连接时触发
23.RemoteHotLinkStop   当一个DDE客户应用结束一个热连接时触发
24.RemoteRequest       当一个DDE客户应用请求数据时触发
25.RemoteSend          当一个DDE客户应用已经发送了数据时触发
26.Resize              当用户或程序打开或重设窗口大小时触发
27.Show                当程序运行此窗口的show函数时,此事件在窗口显示之前触发
28.SystemKey           当插入点不在某个行编辑中且用户按了ALT或ALT加其它键时触发
29.Timer               在调用Timer函数后,经过了Timer函数指定的时间后触发
30.ToolBarMoved        当MDI窗口的工具条移动时触发

以上是我新建一个window是window的事件原来的顺序,
下面是我自己常用的排序:

01.window打开时发生的事件
事件名                   触发的时机


Activate            在窗口激活之前触发
Resize              当用户或程序打开或重设窗口大小时触发
Open                当程序调用以此窗口为参数的Open函数时,此事件在该窗口打开之后,显示之前触发
Show                当程序运行此窗口的show函数时,此事件在窗口显示之前触发

02.window关闭时发生的事件
Deactivate          当窗口变为非活动状态时触发
CloseQuery          当清除或关闭窗口时触发。然后检查Message.ReturnValue的值,若为1,则窗口不能关闭
Close               当关闭窗口时触发

03.关于鼠标击键事件
Clicked             当用户用鼠标单击窗口的空白区域(没有控件的区域)时触发
DoubleClicked       当用户双击窗口的空白区域时触发
MouseDown           当用户在窗口的空白区域按下鼠标左键时触发
MouseMove           当鼠标在窗口内移动时触发
MouseUp             当用户在窗口的空白区域释放鼠标左键时触发、
RButtonDown         在窗口的空白区域单击鼠标右键时触发
注:当按下鼠标左键时,MouseDown事件触发,当释放鼠标左键时,Clicked事件和MouseUp事件触发

04.计时触发
Timer               在调用Timer函数后,经过了Timer函数指定的时间后触发

05.托动触发
DragDrop            当一个可拖动的控件被拖动到窗口上时触发
DragEnter           当一个可拖动的控件进入窗口时触发
DragLeave           当一个可拖动的控件离开窗口时触发
DragWithin          当一个可拖动的控件在窗口内部拖动时触发

06.菜单及菜单工具栏移动是触发
ToolBarMoved        当MDI窗口的工具条移动时触发

07.其它不常用的(指的是我自己)
Hide                在窗口被隐藏时触发
HotLinkAlarm        在DDE中服务器应用已经发送了新的数据,客户DDE应用已经接收到这些数据时触发
RemoteExec          当一个DDE客户应用发送了一个命令时触发
RemoteHotLinkStart  当一个DDE客户应用开始一个热连接时触发
RemoteHotLinkStop   当一个DDE客户应用结束一个热连接时触发
RemoteRequest       当一个DDE客户应用请求数据时触发
RemoteSend          当一个DDE客户应用已经发送了数据时触发
Key                 当用户击了一个键且插入点不在RichTextEdit编辑控件或数据窗口控件时触发
Help                .........
Other               当一个非PowerBuilder事件的Windows信息发生时触发
SystemKey           当插入点不在某个行编辑中且用户按了ALT或ALT加其它键时触发

-----------------------------------

在window上的能应用的控件非常多
但是控件的事件有一部分是相同的

2.窗口上控件的公共事件
 事件名          触发的时机
Clicked       当单击窗口或控件时触发
Constructor   在窗口中的open事件发生之前触发
Destructor   在窗口中的close事件发生之后触发
GetFocus     在此控件得到焦点上时触发
LoseFocus     在此控件失去焦点时触发
DragDrop     当一个可拖动的控件被拖动到窗口或控件上时触发
DragEnter     当一个可拖动的控件进入窗口或控件上时触发
DragLeave     当一个可拖动的控件离开窗口或控件时触发


DragWithin   当一个可拖动的控件在窗口或控件内部时触发
RbuttonDown   在控件区域内单击鼠标右键时触发
Other         当一个非PowerBuilder事件的Windows信息发生时触发

-------------------------------------

3.datawindow上的事件,按照顺序(除开公用事件)

    事件名称              事件触发的时机
01.ButtonClicking      在数据窗口中的按钮对象正在被单击时触发
02.ButtonClicked      在数据窗口中的按钮对象被单击后触发
03.DbError            当数据窗口中发生了数据库错误时触发
04.DoubleClicked      当用户双击数据窗口控件时触发;对于RichText风格的数据窗口,当双击数据窗口中的文本时触发
05.EditChanged        当光标进入数据窗口对象中的一个字段时触发
06.Error              当数据窗口数据表达式或属性表达式中发现错误时触发
07.ItemChanged        当数据窗口上的区域被修改并且失去了焦点(如用户按回车键、Tab键或箭头键,或者用鼠标选另一个区域)时触发
08.ItemError          当一个域被修改并且失去焦点,且域不符合列上的合法性规则时触发
09.ItemFocusChanged    当焦点改变时触发
10.PrintStart          当数据窗口打印开始时触发
11.PrintEnd            当数据窗口打印结束时触发
12.PrintPage          在数据窗口的每一页设置打印格式之前触发
13.Resize              当用户或程序重设窗口大小时触发
14.RetrieveStart      当数据窗口检索将要开始时触发
15.RetrieveEnd        当数据窗口的检索完成时触发
16.RetrieveRow        在一行数据被检索出来之后触发
17.RowFocusChanging    当数据窗口当前行正在改变时触发
18.RowFocusChanged    当数据窗口当前行改变之后触发
19.ScrollHorizontal    当用户用Tab键、箭头键或滚动条左右滚动数据窗口控件时触发
20.ScrollVertical      当用户用Tab键、箭头键或滚动条上下滚数据窗口控件时触发
21.SqlPreview          在调用Retrieve、Update或Selectrow函数时,SQL语句提交到DBMS之前触发
22.UpdateStart        恰在调用Update函数之后,数据窗口中的改变发送到数据库之前触发
23.UpdateEnd          当所有从数据窗口到数据库的修改完成时触发

说一下我个人常用的几种事件

01.数据窗口字段输入的时候触发的事件
EditChanged        当光标进入数据窗口对象中的一个字段时触发
ItemChanged        当数据窗口上的区域被修改并且失去了焦点(如用户按回车键、Tab键或箭头键,或者用鼠标选另一个区域)时触发
ItemFocusChanged  当焦点改变时触发
ItemError          当一个域被修改并且失去焦点,且域不符合列上的合法性规则时触发
如果EditChanged,ItemChanged,ItemFocusChanged这三个事件报错促发ItemError   
如果在ItemChanged事件中设置了行为/返回代码1,则DataWindow控件拒绝接受数据且不允许焦点发生变化

02.鼠标单双击数据窗口按钮
ButtonClicking      在数据窗口中的按钮对象正在被单击时触发
ButtonClicked        在数据窗口中的按钮对象被单击后触发
eg:
choose case dwo.name
       case 'cb_name'
         //动作......
       case .......
end choose

03.数据窗口检索前后触发的事件
RetrieveStart      当数据窗口检索将要开始时触发
RetrieveEnd        当数据窗口的检索完成时触发
RetrieveRow        在一行数据被检索出来之后触发   
在RetrieveStart事件中设置了行为/返回代码2,在检索数据之前不要重置行,也就是上次retrieve的数据会被保留下来  

04.打印前后
PrintStart          当数据窗口打印开始时触发


PrintEnd            当数据窗口打印结束时触发
PrintPage          在数据窗口的每一页设置打印格式之前触发

05.其它的我自己不常用,就不多说了



[解决办法]
楼主辛苦了,支持
[解决办法]
支持支持!!
[解决办法]
厉害,佩服啊
[解决办法]
楼主辛苦了。。。
[解决办法]
好详细啊。。。UP
[解决办法]
非常好,转一下,没问题吧

http://www.sybasebbs.com/forum.php?mod=viewthread&tid=5411&extra=
[解决办法]
感谢楼主细心整理,共享
[解决办法]
支持分享!!!!
[解决办法]
顶,楼主辛苦了
[解决办法]
辛苦辛苦
[解决办法]
辛苦辛苦   保存一下,留着学习。
[解决办法]
辛苦了  谢谢分享

热点排行