在程序中有时为表示数据的复制,读取等时间软长时,应采用进度条来表示执行的状况,以免使用户才生程序死机以及运行速度慢的感觉,给用户一个比较好的用户界面。但在powerbuilder6.0中并没有可以直接使用的进度条控件,在本例中我们通过定制可视用户对象的创建以及用户对象与窗口的通讯方法来实现进度条。
实现步骤如下:
1. 创建一个名为customuo的用户对象,并将它保存在名为customuo.pbl的应用库中;
2. 单击画笔栏的用户对象画笔图标,系统显示“select user object”对话框,单击“new”按钮,系统显示“new user object ”对话框;
3. 通过单击选择“visual”组框中的“custom”选项,然后单击“ok”按钮进入用户对象画笔;
4. 在用户对象上放置三个静态文本框,将其依次命名为st_background、st_foreground、st_percent,分别用于显示进度条的背景、进度条当前进展以及进展的百分比表示。把它们的标题(对应于text属性)全部删掉,保留为空白。用户对象本身的大小通过放置在窗口上的用户对象控件来控制;
5. 右击用户对象的空白部分(而不是其上的三个静态文本控件),从弹出菜单中选择“script....."菜单项,进入代码编辑器;用户对象的。在事件列表框中选择constructor事件,我们将对该事件编程,实现静态文本控件位置、大小的调整、边框设置等功能。具体代码如下:
//设置静态文本控件的高度、宽度
st_foreground.height=st_background.height
st_foreground.width=0
//设置静态文本控件位置
st_background.x=0st_background.y=0
st_foreground.x=0st_foreground.y=0
//设置边框风格
st_background.borderstyle=stylelowered!
st_foreground.borderstyle=stylelowered!
//改变用户对象的高度
this.height=st_foreground.height+st_percent.height+50
//修改进程条宽度
st_background.width=this.width
//设置显示百分比的静态文本控件位置
st_percent.y=100
st_percent.x=this.width/2 - st_percent.width/2
6. 从“declare”菜单选择“instance variable....."菜单项,在打开的对话框中定义一个实例变量,它们的访问权限为protected(protect型变量的特性为:用户对象外的其它对象不能直接访问这些变量,只能通过对象函 捶梦剩庵址椒芄槐;ざ韵笾械闹匾荩饫锒ㄒ宓谋淞縤l_limit用于保存进度条对应的数值上界:
protected:
long il_limit
7. 从“declare”菜单选择“user object functions...”菜单项,我们定义名为setprogress()的对象函数。该函数的功能是设置作为进度提示的静态文本控件st_foreground的宽度和静态文本控件st_percent上显示的百分比。这样通过不断调用该函数,可达到动态显示进程的效果。该函数有一个参数ai_value,数据类型为integer,引用类型为value。函数的返回值类型为(none)(无返回值)。函数代码为:
integer li_percent
//设置st_foreground静态文本控件的的宽度,以指示当前完成进度st_foreground.width=st_background.width/il_limit *ai_value
li_percent=st_foreground.width/st_background.width*100
st_percent.text=string(li_percent)+"%"
return
8. 按前面相同的方法,再定义一个对象函数setcolor(),这样其它对象就可以设置进度指针的颜色了。setcolor()函数有一个参数,数据类型为long,引用类型为value。函数的返回值类型为(none)(无返回值)。函数代码为:
//设置进度条颜色
st_foreground.backcolor=al_color
return
9. 现在定义个设置进度条上界il_limit的函数setlimit(),进度条将根据il_limit的值计算百分比。setlimit()函数有一个参数,数据类型为integer,引用类型为value。函数的返回值类型为(none)(无返回值)。函数代码为:
//设置进度条的上界
il_limit=al_value
10. 单击用户画笔工具栏“close”图标,系统显示保存对话框后将用户对象保存为cuo_progress;
11. 使用窗口画笔创建一个新窗口;将窗口标题设置为“用户对象演示”,将窗口类型选择为“response”;然后从“controls”菜单中选择“userobject...."菜单项,系统打开"select user object”对话框,选择cuo_progress,然后单击“ok”按钮关闭对话框;在窗口上单击,包含cuo_progress的用户对象控件被放置到窗口上;
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器