散分,自己根据一些资料整理的pb常用事件,该怎么解决

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

SQL code


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.其它的我自己不常用,就不多说了