点击Pb工具栏的user object按钮(图1):
在打开的select user object 窗口中点击new按钮,接着会打开new user object 窗口,选择此窗口中visual中的standard 后点击ok(图2):

下面就会打开"select standard visual type "窗口,在type列表框中选择你要进行二次开发的控件(图3):
现在我们举个例子,大家都看到在一些商业软件的输入窗口中按一下enter键,输入焦点马上转移到下一个输入焦点(这是在DOS时代养成的习惯),这个功能在Pb中能很容易实现,我们通过对singlelineedit 控件的二次开发将此功能封装到自己的用户对象中,将来用到时直接选用即可。
现在我们接着图3往下介绍,在type列表框中选择singlelineedit 控件按OK后就会打开user object的编辑窗口,然后选择菜单中的declare项中的user events(如图4):
定义自己用于检测enter键的用自定义户事件。接下来会打开事件定义窗口,灰色部分为系统本身已拥有的事件,我们要在空白部分输入自己的事件名称和events Id,如我们定义的事件名称为checkkey ,events Id可在下面的事件栏中进行选择,我们选择pbm_keydown事件,剩下的就是OK啦(参考图5)。
最后剩下的就是给checkkey事件进行编程了,我们在这个事件中首先检测enter键,如果键值是enter,则跳到下一个输入焦点,具体程序如下:
if keydown(keyenter!) then //检测键值
Send(Handle(this),256,9,Long(0,0)) //跳到下一个焦点
end if
最后保存,给自己的user object起名字为U_singlelineedit,到此就结束了,当用到此功能时就可以直接拿来。
对于datawindow控件要实现象fox的那种按Enter键跳转到下一个字段的功能Pb也可以轻松实现,方法与上面介绍的基本相同,在Event Name中输入tab_to_enter,在Event Id上选择pbm_dwnprocessenter (图6),然后对其编程,
程序如下:
if this.AcceptText() < 0 then
Return 1
end if
Send(Handle(this),256,9,Long(0,0))
return 1
把你的用户对象取名为U_datawindow,这样你的二次开发就结束了。当然你也可以给你的U_datawindow加上你自己所喜好的默认属性如横、竖滚动条等,如图7。今天我们就介绍到这,当然大家可以在以后的学习当中开发自己的用户对象,这样日积月累将会开发就会变的越来越简单。希望大家和我交流我的E-mail:sdwd_lhq@263.net。






