前一段时间,我还觉得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 choose03.数据窗口检索前后触发的事件RetrieveStart 当数据窗口检索将要开始时触发RetrieveEnd 当数据窗口的检索完成时触发RetrieveRow 在一行数据被检索出来之后触发 在RetrieveStart事件中设置了行为/返回代码2,在检索数据之前不要重置行,也就是上次retrieve的数据会被保留下来 04.打印前后PrintStart 当数据窗口打印开始时触发PrintEnd 当数据窗口打印结束时触发PrintPage 在数据窗口的每一页设置打印格式之前触发05.其它的我自己不常用,就不多说了