数据窗口中最常用的事件

来源:互联网 发布:网络分线盒多少钱 编辑:程序博客网 时间:2024/06/01 07:13
数据窗口中最常用的事件2008-09-18 19:44:25

分类: Linux

数据窗口中最常用的事件:
ButtonClicked、Clicked、Constructor、Dberror、DoubleClicked、DragDrop、Editchanged、ItemError、Itemchanged、Rowfocuschanged、Rowfocuschanging。
①、BottonClicked事件:当数据窗口对象上的按钮对象的SuppressEventProcessing属性设置为no (缺省为no)后,用户单击该按钮时触发。该事件在系统处理完按钮的缺省动作后触发。
参数:
◆Row--Long类型,用户单击的时第几行。(与按钮所放的位置有关)
◆Actionreturncode--返回命令按钮的操作码,Long类型。
◆Dwo--DWObject类型,单击命令按钮时,数据窗口的当前对象。
②、Clicked事件:当用户点击数据窗口控件的任何位置时触发。返回值:1(缺省返回值)继续处理;0停止处理,不改变输入焦点。此事件将会触发Rowfocuschanged、ItemFocuschanged。
参数:
◆xpos、ypos--用户在数据窗口中单击的具体位置。
◆Row--用户单击的记录号,如果没有单击在行上,则该值为0。
◆Dwo--DWObject类型的值,存放单击的数据窗口内部对象名称。
注意:
如果在此事件中用到了取数的函数例如:getitemstring(row,column);selectrow的函数等只要用到的函数与行有关,必需设置 if row=0 then return 。
如果为打印报表中的数据窗口控件,则不能继承Clicked事件(因为在模板中的Clicked事件中编写了点击列的标签排序,如果此报表有合计数或分组等,则得不到正确的报表。),应该屏蔽掉祖先代码,具体实现为进入Clicked的Scrip中选择菜单Design Override Ancestor Scrip后,在Clicked事件中随便加点注释即可,例如"////"。
③、Constructor事件:在窗口的Open事件发生之前触发。
④、Dberror事件:在数据窗口控件访问数据库过程中发生数据库错误时触发。返回值:0-缺省值,系统显示出错信息;1-系统不显示出错信息。
⑤、DoubleClicked事件:当用户双击数据窗口控件时触发。在触发双击事件前,首先触发Clicked单击事件。我们可以在双击中打开一窗口。
⑥、DragDrop事件:当某个被拖曳控件放置到数据窗口控件上时触发。如在一数据窗口中拖曳排序;从一个数据窗口拖曳数据放到另一个数据窗口中,此时则用到DragDrop事件,拖曳结束需要写this.Drag(end!),取消拖曳写this.Drag(Cancel!)。
⑦、Editchanged事件:当用户在数据窗口控件的编辑控件中按任何按键时触发。
⑧、ItemError事件:当用户修改了字段、然后移走焦点、但数据未能通过该列的有效性检查时触发。该事件返回值得意义为:
0--(缺省值),拒绝输入值并显示有效性检查出错信息,同时不允许移走焦点。
1--拒绝输入值,但不显示出错信息,同时不允许移走焦点。
2--接收输入值。
3--拒绝输入值,但允许移走焦点。
参数:
◆Row--用户单击的记录行号,如果没有单击在行上,则该值为0。
◆Dwo--DWObject类型的值,存放单击的数据窗口内部对象的名称。
◆Data--string类型,用户输入的数据。
⑨、 Itemchanged事件:当数据窗口控件中某个域被修改并且该域失去输入焦点(比如,用户按下了Enter键、Tab键或箭头键,或用户单击了数据窗口中其它域)时触发。该事件返回的意义为:
0--(缺省返回值),接收新修改的值;
1--不接收新修改的值且不允许改变输入焦点;
2--不接收新修改的值但允许改变输入焦点。
参数:
◆Row--用户单击的记录行号,如果没有单击在行上,则该值为0。
◆Dwo--DWObject类型的值,存放单击的数据窗口内部对象的名称。
◆Data--string类型,用户输入的数据。
注意:
数据窗口控件的对象函数AcceptText()、SetColumn()、SetRow()都会触发ItemChanged事件,因此,如果未做特殊处理,在ItemChanged事件的事件处理程序中不要使用这些函数,因为他们将可能导致死循环。
如果在ItemChanged事件中用到了Return 1则不能在LoseFocus事件中用函数AcceptText()。如果用了函数AcceptText()后则虽然用到了Return 1但仍然会接收修改的值并改变焦点。
⑩、 Rowfocuschanged事件:当数据窗口控件的当前行被改变时触发。
参数:◆currntrow--long类型,改变后的行号。
注意: 此事件主要用于对行的加亮,或一个(多个)数据窗口跟随一个窗口行的改变而过滤、提取数据。在编写此事件写上:if currentrow=0 then Return。
(11)、Rowfocuschanging事件:当数据窗口的行将要改变时触发。在Rowfocuschanged之前触发。
返回值:0--继续处理;1--阻止当前行的改变。 参数:◆currntrow--long类型,改变前(当前行)的行号。
◆ newrow--long类型,将要变为当前行的行号。 即此事件触发完毕后的newrow即为Rowfocuschanged的CurrentRow。
注意: SetRow、Retrieve、RowsCopy、 RowsMove、DeleteRow将会触发此事件。 编写代码:if currentrow=0 or newrow=0 then return 问题:上下窗口删除时有问题。

0 0
原创粉丝点击