一、用Enter键实现物件的焦点切换
在PowerBuilder中已定义许多事件所对应的MessageID,而在其所提供的元件, 大部分有对应的keydown事件,其ID值不一定相同,例如在datawindow->pbm_dwnkey, singlelineedit->pbm_keydown,其他参考使用手册。因此先对使用的元件新增key 的使用者事件,当user在元件上按任何按键时,将会触发此keydown事件。
你将获得所传的参数key(按键代码)、keyflags(复合键代码),当所按的是Enter时,你就把焦点切换到下一元件或下一栏位。
1.选择要处理的datawindowcontrol,然後选择menu的declare的userevents, 此时会显示一个使用者事件box;
2.于eventname设定使用者事件名称例如:ue_checkkey,然后在eventID填入pbm_dwnkey(或从Pasteevent选择),然后按OK;
3.你可在datawindowcontrols的script中selectevent里发现多了一个使用者事件 ue_checkkey,并且此事件会传递2个参数keycodekey,unsignedlongkeyflags;
4.在script中可以如下填写:
choose case key
case KeyTab!//响应按Tab键
//writeyourcode
case KeyEnter!//响应按Enter键
//writeyourcode
case KeyEscape!//响应按Esc键
//writeyourcode
end choose
注意:(1)keycode是Enumeratedatatype,可在onlinehelp或browers中获得其属性;
(2)你可以设定returnvalue:0或1。
如果是在DataWindow上,可参考以下的方式:
在DataWindow宣告一userevent:
(1)如ue_enter,将EventID参考至pbm_dwnprocessenter;
(2)在ue_enter加入以下的程式码
send(handle(this),256,9,long(0,0))
return
二、在MDI视窗内加入其他Controls,并使其在sheets视窗中正确显示
把MDIWindow的ClientArea打开(Resize)。ClientArea可视为一种Control,PB将它的名字内定为MDI_1。
//Example//m1,m2,r1,r2areallinteger.
//movetheclientareatobeginat(m1,m2).mdi_1.Move(WorkspaceX()+m1,WorkspaceY()+m2)
//Resizetheclientareabasedonthevalue(r1,r2)yougived.mdi_1.Resize(r1,r2)
需要注意的是ClientArea打开後,区域内的Control会被盖掉。
三、PowerBuilder与CommPort的连接
1.使用可以控制CommPort的OCX,例如MicrosoftCommunicationsControl或pdqComm。
2.InitiatetheOCX。
//Script如下,ole_1为OCXName
ole_1.object.CommPort=2
ole_1.object.Settings=“9600,N,8,1”
ole_1.object.PortOpen=true
ole_1.object.InputLen=0
3.GetData or PutData。
//GetData
ole_1.object.input()
//PutData
ole_1.object.output=‘ATDT4125678’+char(13)
四、在 grid中实现列标题覆盖多列
选中某列的标题title,点右键,选properties\position\layer,选中foreground。这时你可以改变标题的大小。同时禁止用户在运行程序时移动列的权利,在脚本中写入:dw_1.Modify(“DataWindow.Grid.ColumnMove=No”)
|
|||
| · C++是垃圾语言?! · 邮件服务器专题 · Exchange Server专题 · 软件插件 · Serv-U基础应用专题 · 负载均衡技术基础专题 · CRM项目实施指导 · ERP系统应用实施指导 |
· Windows服务器全面加固 · Windows发展史 · Cisco IOS · Windows注册表应用指南 · FreeBSD使用教程 · Windows活动目录服务应.. · Windows系统使用技巧 · Zope应用开发指南 |
||
|
|||
| · Java基础教程 · VPN技术 · SQL Server 2005全解 · ARP攻击防范与解决方案 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · 三层交换技术专题 |
· SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 · Windows操作系统安装 |
||
|
|||
| · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 · Windows操作系统安装 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·将职业教育职业化 - 各IT.. ·思科交换机上实现MAC地址.. |
·关于51CTO合作出书中的职.. ·OSPF动态路由协议入门简介 |
| ·9月第3周回顾:微软和英.. ·9月第2周回顾:四核之战.. |
·9月第1周回顾:微软国际.. ·什么样的文章更容易被编.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 平凡黑客讲述精彩人生(.. · 平凡黑客讲述精彩人生(.. · 平凡黑客讲述精彩人生(.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · Ubuntu 中文开源频道 · Solaris基础知识入门 · 微软正式发布英文版Wind.. |
· 服务器基础知识入门 · Rambus第二?看全缓冲内.. · 服务器节能对比测试:AM.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |