·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
PowerBuilder实用技巧八则
http://dev.21tx.com 2003年06月10日 ADERLY

1 2 3 下一页

  本文介绍的方法和技巧都是笔者在实践中的一点积累,在此拿出来与大家一起分享。希望在阅读本文后会对您有所帮助或启发。文中如有任何不足之处还望同行们给予指教。在此,我先道声谢。

  一、实现运行窗口居中

  众所周知,PowerBuilder 7.0在以前的版本中提供了图形化的预览工具,可以很方便的在设计阶段实现窗口居中。但是,到了7.0似乎该项工具被取消了,也没有什么属性来设置,至少我没有找到。每当我们需要将窗口居中的时候只有一点一点地调整它的X,Y值,这一点十分让人头痛。出于无奈,只好通过编程实现。我们只在每个需要居中的窗口的Open事件中写上这些代码就会实现窗口的自动居中。

  要实现窗口的自动居中,我们可以用函数Move()来实现。但是,由于我们开发出来的应用程序往往会在不同的设置环境中运行,虽然一般情况下是由我们为用户配置好的,但我们总不能保证用户显示器的设置模式不会改变。所幸的是,PB为我们提供了环境对象Environment,该对象其实是一个系统结构,其中保存了PB应用程序的运行平台信息,例如,代码集,CPU类型等。其中当然会有我们需要的屏幕宽和高。为了得到该结构我们可以用函数GetEnvironment()。该函数的作用是得到关于操作系统处理器和屏幕的系统信息。具体用法如下:

  Environment my_system

  Integer li_ScreenWidth, li_ScreenHeight

  GetEnvironment(my_system)

  // 得到屏幕的总宽度和长度

  li_ScreenWidth = PixelsToUnits(my_system.ScreenWidth, XPixelsToUnits!)

  li_ScreenHeight = PixelsToUnits(my_system.ScreenHeight, XPixelsToUnits!)

  // 函数PixelsToUnits()的作用是将屏幕的像数转换成PowerBuilder使用的单位,因为像数通常不用于方形中,具体用法请参见函数手册。

  然后就可以用Move()来实现窗口居中。

  This.Move((li_ScreenWidth - this.Width)/2, &

   (li_ScreenHeight - this.Height)/2 )

  二、数据窗口中实现字段的组合

  你有没有碰到这样的情况,我们输入了客户的详细地址资料,包括省份,城市,地址,邮编。当我们要给客户们邮寄信函时需要将他们的省份,城市,地址,邮编连成在一起打印出来。然而,这些信息是分开存储的,即存在不同的字段。这时我们就可以利用PowerBuiler提供的在数据窗口添加计算域(Compute Field)来实现字符字段的组合显示。

  现在假设客户的省份,城市,地址,邮编分别存放在不同的字段中,它们是Province,City,Address,PC。我们要得到“邮编+省份+城市+地址”的格式,如:“(214001)江苏省无锡市人民路1号。",具体实现如下:

  1、在需要显示的位置添加一个计算域(Compute Field)

  2、在它的表达式栏中写上“ '(' + PC + ' )' + Province + City + Address ”

  3、单击确定完成。

  很容易是不是。需要提醒大家的是,计算域只能用来显示,不能对它进行修改,因为它没有TAB属性,不能得到焦点。

上一篇: PowerBuilder数据窗口中记录颜色的隔层显示
下一篇: PB中使用FORMULA ONE入门介绍

1 2 3 下一页

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net