转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
利用PB数据窗口特征制作进度条         

利用PB数据窗口特征制作进度条

作者:闵涛 文章来源:闵涛的学习笔记 点击数:766 更新时间:2009/4/24 21:42:56
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) + "%" )

  (3)编写三个颜色控制函数以改变背景、伸缩条、文字的颜色。

  函数名:uf_change_back_color

  参数:double a_color

  函数体:

dw_1.modify ( "st_back.background.color = "+string(a_color))

  函数名:uf_change_move_bar_color

  参数:double a_color

  函数体:

dw_1.modify ( "st_move.background.color = "+string(a_color))

  函数名:uf_change_text_color

  参数:double a_color

  函数体:

dw_1.modify ( "st_text.color = "+string(a_color))

  (4)在constructor事件中输入以下代码:

dw_1.insertrow (0)
this.uf_schedule_move ( 0 )
ii_width = this.width

  好了,一个标准的进度条用户对象就封象好了!在程序中任意地使用吧!


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台