您的位置:首页 >> 数据库 >> PowerBuilder >> 正文
RSS
 

Powerbuilder 控件的二次开发

http://www.rdxx.com 06年07月18日 19:33 天极网 我要投稿

关键词: 二次开发 , PowerBuilder , 控件 , UI , 开发
 Powerbuilder 的初级爱好者在进行程序的开发时应注意pb原有控件的二次开发应用,何谓pb控件二次开发?pb中的标准控件加上自己的一些东东。下面就把我自己在学习pb中的一些关于这方面的经验和大家共享,希望能对大家有所启示。
点击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。

 
 
标签: 二次开发 , PowerBuilder , 控件 , UI , 开发 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站