利用PB数据窗口特征制作进度条
日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]-
P>PowerBuilder的6.5以前版本没有提供进度条,因此大多数程序员总是自己在程序中利用两个statictext控件进行编程产生进度效果。但是由于包括statictext控件在内的所有窗口内使用的控件没有透明色即transparent,进度条的文字显示无法与进度条进行重叠,只得在进度条外的其它位置放置一statictext控件用以显示进度情况,这样即浪费了空间,又不美观。
但我们知道,数据窗口内的静态文本的字体属性是有transparent(透明)的,笔者通过研究PowerBuilder的数据窗口控件特征,摸索出一利用数据窗口等制作进度条的方法,充分解决了以上难题,还能任意改变宽度及背景、伸缩块及文字的颜色,并封装成了用户对象以方便调用。下面就介绍这一方法。
1、首先建立一数据源为Enternal(外部)、风格为Freefrom的数据窗口d_schedule_bar,输入一个字段。确定后在数据窗口画板中删除该字段,再增加两个statictext控件,这样数据窗口加上字段标识的那个一共三个statictext控件,分别命名为:st_back、st_move、st_text,调整使其宽、高度相等,设st_back的background.color为ButtonFace,st_move的background.color为Teal,st_text的background.color为transparent,st_text的color为black。表述如下:
控件名 背景色 文字色 x y 高度 宽度 St_back ButtonFace ---- 5 8 76 969 St_move Teal ---- 5 8 76 969 St_test Transparent black 5 8 76 969保存之前选择st_move,从Edit菜单中选择Bring to Front,再选择st_text重复上述操作,使三个 statictext控件的位置层从外向里按st_text、st_move、st_back排序,以防被显示屏蔽(这一点非常重要!)。
2、新建一可视定制用户对象uo_ schedule_bar,以其中放置一数据窗口dw_1,数? 为d_schedule_bar。定义两个int实例变量 ii_percent、ii_width。
下面就开始骗程吧!
(1)编写函数uf_setwidth(integer ai_width)
参数及类型:integer ai_width
作用:改变进度条宽度:
返回值:无
函数体:
IF ai_width $#@62; 0 THEN ii_width = ai_width dw_1.resize (ai_width + 15,dw_1.height) dw_1.modify ( "st_back.width=" + string(ai_width) ) dw_1.modify ( "st_text.width=" + string(ai_width) ) this.resize ( ai_width + 50, this.height ) END IF
(2)编写函数uf_schedule_move(integer ai_schedule)
参数及类型:integer ai_schedule
作用:显示进度
返回值:无
函数体:
int li_AllWidth,li_schedule IF ai_schedule $#@62; 100 THEN ai_schedule = 100 ii_percent = 100 END IF IF ai_schedule $#@60; 0 THEN ai_schedule = 0 END IF ii_percent = ai_schedule li_AllWidth = integer(dw_1.describe ( "st_back.width" )) IF ai_schedule $#@62;= 0 THEN li_schedule = li_AllWidth * (ai_schedule / 100) END IF dw_1.modify ( "st_move.width=" + string(li_schedule) ) dw_1.modify ( "st_text.text=" + string (ai_schedule) + "%" )
- [1] [2] 下一页
-
- 利用PB数据窗口特征制作进度条 相关文章:
- ·利用PB数据窗口特征制作进度条
- 利用PB数据窗口特征制作进度条 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:如何在PB中切换中英文输入法数
下一篇:在POWERBUILDER中使用WINSOCK控件的方法
精品推荐
热点TOP10
- ·在PB中用Flash制作Splash封面
- ·在PB中如何对ASA进行数据备份
- ·循序渐进学习Power Builder 6.0(13-3)
- ·循序渐进学习Power Builder 6.0(15-4)
- ·循序渐进学习Power Builder 6.0(15-2)
- ·循序渐进学习Power Builder 6.0(14-3)
- ·循序渐进学习Power Builder 6.0(14-2)
- ·在pb6.0以上版本中创建数据库
- ·PowerBuilder应用开发系列讲座(23)
- ·PowerBuilder应用开发系列讲座(39)
- ·PowerBuilder应用开发系列讲座(4)
- ·在PB中用OLE存取blob类型数据
- ·PB5对SQLSERVER6数据库的访问
- ·深入了解PowerBuilder的数据窗
- ·PowerBuilder应用开发系列讲座(38)
- ·在PB中动态调用函数
- ·PowerBuilder应用开发系列讲座(3)
- ·用PowerBuilder6.0建立B/S结构应用程序
- ·PowerBuilder实用技巧八则
- ·PB应用ODBC访问不同数据库
