|
问题的提出
目前,Internet上和光盘中提供了许多流行的Windows屏幕保护程序,主要是动画加音乐。如山水、动植物、公司徽标和产品图片,家庭音乐相册等等。您曾想过制作一个家庭音乐相册屏幕保护程序吗?在电脑前连续工作了几小时的您,一定疲惫不堪,休息待机时,音乐响起,一幅幅照片在您面前闪现又消失……重温着往日美好的记忆,一切疲劳顿觉烟消云散!
Windows屏幕保护程序的开发,在一些书籍已有介绍,在此不加讨论。本文介绍一种实现图像随机动态显示的技术,方法简便,效果良好。
技术原理
用TImage组件装入待显示的相片位图,利用随机数发生器(函数Random())控制其在主窗体上的位置,以达到随机移动图像的目的。由TTimer组件控制图像定时显示和隐藏。
准备工作
建好应用软件主目录C:\ShowImage及其子目录Images和Sounds。用扫描仪将照片逐一扫入电脑,或者用数码相机拍摄后直接传入电脑,并用Photoshop或其它图像处理软件制作加工,以位图格式文件(.bmp)存入Images目录中。不失一般性,本文只演示一个图像(Diana.bmp)的动态显示。将音乐以波形格式文件(.wav)存入Sounds目录(本文略)。
实现步骤

(图一)
1. 启动Delphi IDE,新建项目ShowImage.dpr,主窗体单元命名为Main.pas,存入C:\ShowImage目录。在主窗体上放入一个TImage组件和一个Ttimer组件。如图1所示:
主窗体和各组件的主要属性按表1设置:
表1 主窗体和各组件属性设置
| 组
件 |
属 性
|
设
置 |
| FOM1 |
BorderStyle |
bsNone |
| Caption |
|
| Color |
cLBlack |
| Name |
Mainfom |
| WindowsState |
wsMaximized |
| Imag1 |
Align |
alNoe |
| Name |
Dianaimage |
| Picture |
Diana.bmp |
| Stretch |
True |
| Visible |
True |
| Timer1 |
Enabled |
True |
| Interval |
1000 |
| Name |
MoveTimer |
表1中Timer1组件的Interval属性为1000,表示间隔时间为1秒。
2. 建立主窗体MainForm的OnCreate事件,加入下列语句,以初始化随机数发生器:Randomzie;
3. 创建主窗体MainForm的OnKeyPress事件处理程序,在其Begin与End之间输入语句“Close;”,当按任意键时结束程序运行。
4. 创建MoveTimer的OnTimer事件处理程序,这是本例程最重要的过程。见程序清单Main.Pas中的过程MoveTimerTimer。
应注意的是,在算法中应确保图像不超出主窗体的用户区域(Client Area),这很重要。
5. 编译、运行。软件启动后主窗体为满屏,黑色背景上一位女士微笑着时隐时现,每间隔1秒钟,便在不同的位置闪现,周而复始,具体位置是随机的。本例未设置鼠标响应事件,按键盘任意键,程序结束运行。如图2所示。

(图二)
高级话题
本例可作进一步的完善,例如:
1. 增加背景音乐。
2. 交替显示多幅不同图像。
3. 为图像的显示增加特效,如淡入淡出等。
限于篇幅,以上话题在此不加讨论,有兴趣的读者不妨一试。
程序清单略。(海南省海口市
海甸三西路16号 叶斗彪 570228)
|