|
随着计算机的日益普及和多媒体技术的不断发展,多媒体计算机辅助教学(MCAI)软件正改变人们传统的学习方式。MCAI软件的操作界面赏心悦目,特别是具有音响效果且能自动隐藏的图像按钮或菜单,图文声并茂,确实为软件添色不少,深受用户喜爱。以下介绍用Delphi实现上述功能的技术。
准备工作
建好应用软件主目录C:\AutoHide及其子目录Images和Sounds。作为软件主界面的背景图像的位图文件Background.bmp,及作为按钮图像的位图Chimera.bmp都存入Images目录中。将声音文件Growl.wav存入Sounds目录。
BackgroundImage的Picture属性装入Background.bmp,PictureImage的Picture属性装入 Chimera.bmp。ButtonImage重叠于PictureImage之上,置于背景图像的特定位置。
图像按钮
1. 启动Delphi 3.0 IDE,新建项目AutoHide.dpr,主窗体单元命名为Main.pas,存入C:\AutoHide目录。在主窗体上放入三个TImage组件,主要属性按表1设置。
表1 主窗体和各组件属性设置
| 组 件 |
组 件 |
设 置 |
| Form1 |
Caption
Name |
Auto Hide Button
MainForm |
| Image1 |
Align
Name
Picture
Stretch
Visible |
alClient
BackgroundImage
(TBitmap)
True
True |
Image2
|
Align
Name
Picture
Stretch
Transparent
Visible |
alNone
PictureImage
(TBitmap)
True
True
True
False
|
Image3
|
Align
Cursor
Name
Picture
Stretch
|
alNone
crHandPoint
ButtonImage
(None)
False
|
2. 建立ButtonImage的OnMouseMove事件,当鼠标移至其上时PictureImage显现:
PictureImage.Visible:=True;

3. 建立BackgroundImage的OnMouseMove事件,当鼠标移开ButtonImage时PictureImage隐藏:
PictureImage.Visible:=False;
4. 创建ButtonImage(注意:不是PictureImage)的OnClick事件,以响应鼠标点击完成规定动 作。不失一般性,在此仅显示一行信息。
MessageBeep($FFFF);
ShowMessage('Welcome to the Delphi.');
5. 编译、运行。软件启动后进入主界面,在背景图像上没有菜单,也没有按钮,如图1所示。
当鼠标移至猎豹头部时,豹头变成狮头按钮,且鼠标变为手指,如图2所示。
当鼠标移出狮头范围时,狮头隐藏,恢复主界面图像。若点击狮头按钮,则出现信息窗(见图3):
Welcome to the Delphil.

音响效果
如果要在上述“自动隐藏”按钮加上音响效果,可以在狮头出现时利用PlaySound()播放一个声音文件(.wav)。
但是,不能将PlaySound()直接加入ButtonImage的OnMouseMove事件中。这是因为,当鼠标在按钮上移动时,PlaySound()会不断重复执行。务必确保按钮出现时声音文件只播放一次!须如此这般:
1. 为调用PlaySound()函数,并控制声音文件的播放次数,在Main.pas单元的implementation段加入:
uses
mmsystem;
var
noHide: Boolean;

2. 创建主窗体MainFrom的OnCreate事件处理程序,以初始化noHide变量:
noHide:=True;
3. 将ButtonImage的OnMouseMove事件处理程序(Begin与End之间的语句)改为:
if noHide then
begin
PictureImage.Visible:=True;
PlaySound('Sounds\Growl',0,SND_ASYNC);
noHide:=False;
end;
4. 将BackgroundImage的OnMouseMove事件处理程序(begin与end之间的语句)改为:
PictureImage.Visible:=False;
noHide:=True;
重新编译和运行。此时,当鼠标移至猎豹头部时,张牙舞爪、咆哮着的狮头闪现,惊心动魄。
以上例程编译和运行环境是Delphi 3.和中文Windows 98。(海南大学 叶斗彪 570228)
|