在VB和Delphi等语言中都提供了“进度条”控件,PB中没有现成的控件提供,但我们可以做一个“进度条”的用户定义对象
需积分: 0 80 浏览量
更新于2010-02-26
1
收藏 22KB DOC 举报
在VB和Delphi等语言中都提供了“进度条”控件,PB中没有现成的控件提供,但我们可以做一个“进度条”的用户定义对象(user object),象控件一样在程序中调用。具体方法如下:新建一个用户对象UO_PROGRESSBAR,加上两个长方形(rectangle)控件r_1和r_2,同时加上两条线(line)控件ln_1和ln_2。线用于增加r_1的立体效果,r_2颜色为兰色,用于显示进度
在VB和Delphi等编程语言中,开发人员可以轻松地使用内置的“进度条”控件来展示应用程序执行过程中的进度。然而,在PowerBuilder (PB) 中,原生的控件集并不包含这样的功能。不过,这并不意味着我们无法在PB中实现进度条。实际上,我们可以创建一个用户定义的对象(User Object,UO),模拟出类似的功能。
这里介绍一种方法,通过创建一个名为UO_PROGRESSBAR的用户对象来实现自定义的进度条。我们需要在PB环境中新建一个用户对象,并添加两个长方形(Rectangle)控件,分别命名为r_1和r_2,以及两条线(Line)控件,命名为ln_1和ln_2。ln_1和ln_2的作用是增强r_1的立体感,而r_2则用于显示实际的进度,设置其填充颜色为蓝色。
r_1的属性设置如下:
- X坐标: 5
- Y坐标: 4
- 宽度: 1408
- 高度: 64
- 是否可见: true
- 线颜色: 33554431(对应于深蓝色)
- 填充颜色: 33554431(对应于深蓝色)
- 填充样式: solid
- 线样式: continuous
- 线粗细: 12
r_2的属性设置如下:
- X坐标: 5
- Y坐标: 4
- 宽度: 41
- 高度: 60
- 是否可见: true
- 线颜色: 16777215(对应于白色)
- 填充颜色: 16711680(对应于浅蓝色)
- 填充样式: vertical
- 线样式: continuous
- 线粗细: 12
为了实现进度条的功能,我们还需要定义窗口的实例变量(Instance Variables),包括thick(进度条与外框的距离)、b(当前进度的边界值)、以及max、min和pos(分别表示最大值、最小值和当前位置)和color(进度条颜色)。
窗口的Constructor Script中,我们需要计算并设置控件的位置和大小,以适应窗口的宽度和高度。同时,设置ln_1和ln_2的位置以形成进度条的边框。
接下来,编写Progress的Script,这里主要处理进度更新的逻辑。首先计算每段进度所占的比例,然后根据当前位置更新r_2的宽度。当位置达到最大值时,恢复初始状态;若位置在最小值和最大值之间,则根据比例调整r_2的宽度。
在实际的代码中,我们可以通过创建UO_PROGRESSBAR的实例,并设置min、max和pos的值,然后调用其Progress事件来更新进度条的显示。例如:
```pb
int i
uo_1.min = 0
uo_1.max = 10000
for i = 1 to 10000
uo_1.pos = i
uo_1.TriggerEvent("Progress")
next
```
这段代码将创建一个从0到10000的进度条,并每次增加1,调用Progress事件更新进度条的显示。
虽然PowerBuilder没有内置的进度条控件,但我们可以通过创建用户对象并结合基本图形控件,自定义实现进度条的功能。这种方法让开发者能够在PB项目中方便地展示任务的执行进度,提升用户体验。
diandianin2004
- 粉丝: 0
- 资源: 2
最新资源
- 【全年行事历】5团建医药箱常备药清单.docx
- 【全年行事历】4团建活动物料清单.xlsx
- 【全年行事历】7团建活动策划书.docx
- 【全年行事历】ZOL团建活动策划方案.pptx
- 【全年行事历】XXX团建活动计划.pptx
- 【全年行事历】86团建活动培训PPT完.pptx
- 【全年行事历】公司年度活动计划.xls
- 【全年行事历】大型企业公司活动进度表.xlsx
- 【全年行事历】公司户外团建活动方案-某公司.pptx
- 【全年行事历】公司团建费用统计表.xlsx
- 【全年行事历】公司团建拓展行程方案-模版.docx
- 【全年行事历】公司全年团建活动方案.xls
- 【全年行事历】公司员工一年度关怀方案预算.xls
- 【全年行事历】公司团建活动项目介绍.pptx
- 【全年行事历】行政部年度活动策划及经费预算.xlsx
- 【全年行事历】行政全年活动筹备规划.xlsx