如何实现PB应用程序的屏幕保护功能
说到屏幕保护,一般人会认为那是操作系统的事, 其实在自己开发的应用程序中也可实现屏幕保护功能,而且这一功能除了确实能保护显示 器屏幕外,还能增加意想不到的效果,比如能将软件版本、程序图标、开发人员介绍等相关 信息以动态文字和动画反复播放。在PowerBuiler中使用idle()函数和idle事件可实现这 一功能。
一.idle()函数和idle事件
idle()函数叫空闲函数,与timer()函数有点类 似,功能是为系统设置一个定时器,时间一到就触发idle事件,函数的参数为以秒为单位的 时间,idle事件叫做空闲事件,当系统接到鼠标或键盘激活的消息时中止idle事件;
二.制作屏幕保护窗口
1.新建一窗口w_save_screen作为屏幕保护窗 口,因为屏幕保护界面一般是对整个屏幕的,窗口不含标题条和菜单条,这要求窗口的类型 最好为response(响应窗口)。至于窗口显示什么样的文本、图片或动画,以何种方式显示, 依开发者的爱好和用户的需求而定,本文的屏幕保护是动态显示一幅介绍软件的图片。
2.在屏幕保护窗口里加入一图形控件p_1,在窗 口的open事件写以下代码:
//图形控件p_1装入当前路径下的一幅图,文件名:scgl6.bmpp_1.picturename="scgl6.bmp"//每隔0.1秒触发一次timer事件,形成动画效果timer(.1)
3.声明窗口的实例变量:
integerii_i=1//用于动画可反复播放的循环数
4.在本例中,限于篇幅,为减少相似程序代码量, 图形只可向下平移、向右下角斜移,读者可稍作改动就可写出向上、向左、向右平移,向四个 角斜移斜的代码。在窗口的timer事件下写以下代码
integerli_num//图片位置变量ifii_i=1thenforli_num=1to1540step1//Y坐标递增,图形向下移p_1.Move(1,li_num)nextii_i++p_1.Move(1,1)p_1.SetRedraw(true)returnendififii_i=2thenforli_num=1to1540step1//X、Y坐标同时递增,向右下角移动p_1.Move(li_num,li_num)nextii_i=1//循环复位,重新开始下一轮p_1.Move(1,1)p_1.SetRedraw(true)returnendif
三.应用程序代码的编写
打开应用程序的的script画板中,在open事件中 增加下面一行代码:
idle(120)//2分种没有鼠标或键盘消息触发idle事件在idle事件中写下面的代码用于打开屏幕保护窗口open(w_save_screen)至此一个完整的屏幕保护功能就实现了
四.更进上步的说明
本例子较为简单,如启动屏幕保护的时间只能限 制在2分钟,不够灵活,其实这一缺点也容易克服,方法是:把启动时间定义为一个全局变量, 将其保存在一配置文件中,由用户自己设置启动时间,甚至可以关闭屏幕保护功能,每次应 用程序启动时从配置文件中读取这一参数,然后传给idle()函数。进入讨论组讨论。
- 最新文章
- PowerBuilder数据录入同步显示[01-04]
- 在PB中实现全文检索[01-04]
- 利用PB5实现中英文信息滚动显示[01-04]
- PB中一个类Word打印对话框的实现[01-04]
- PB6中报表输出的技巧二则[01-04]
- PB中关于动态工资项目问题的解决办法[01-04]
- 相关文章
- PowerBuilder应用开发系列讲座(16)[01-04]
- 用PowerBuilder6.0建立B/S结构的应用程序[01-04]
- PowerBuilder应用开发系列讲座(40)[01-04]
- PowerBuider6.0设置应用对象[01-04]
- Powerbuilder应用开发系列讲座(31)[01-04]
- 关于PB应用程序的2000年问题[01-04]
