📄 自 动 隐 藏 的 声 象 按 钮 .htm
字号:
<html>
<head>
<link REL="stylesheet" HREF="/style.css" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>计算机世界日报:
自动隐藏的声象按钮
</title>
<!--***********-->
</head>
<body bgcolor="#FFFFFF" >
<p><br>
<font color="#b904e8"><b><em><a href="class.htm">返回</a></em></b></font>
<center>
<font color="#0000c0"><h2>
自 动 隐 藏 的 声 象 按 钮
</h2></font>
<h3>海 南 大 学
<br>叶 斗 彪
</h3>
</center>
<p><font color="#ffffff">----</font>
[ 本 文 为 摘 略,<a href="041401-05.zip"> 全 文 可 下 载</a>,Zip 157KB
<p><font color="#ffffff">----</font>
另 有 以 下 压 缩 文 件 可 以 下 载:
<p><font color="#ffffff">----</font>
<a href="041401-05-exe.zip"> 示 例 的exe</a> 402KB;
<p><font color="#ffffff">----</font>
<a href="041401-05-pas.zip"> 源 程 序</a> 1KB;
<p><font color="#ffffff">----</font>
<a href="041401-05-dfm.zip"> 主 窗 体</a> 280KBKB ]
<p><font color="#ffffff">----</font>
随 着 计 算 机 的 日 益 普 及 和 多 媒 体 技 术 的 不 断 发 展, 多 媒 体 计 算 机 辅 助 教 学(MCAI) 软 件 正 改 变 人 们 传 统 的 学 习 方 式。MCAI 软 件 的 操 作 界 面 赏 心 悦 目, 特 别 是 具 有 音 响 效 果 且 能 自 动 隐 藏 的 图 象 按 钮 或 菜 单, 图、 文、 声 并 茂, 确 实 为 软 件 添 色 不 少, 深 受 用 户 喜 爱。 以 下 介 绍 用Delphi 实 现 上 述 功 能 的 技 术。
<p><font color="#ffffff">----</font>
<b>准 备 工 作</b>
<p><font color="#ffffff">----</font>
建 好 应 用 软 件 主 目 录C:\AutoHide 及 其 子 目 录Images 和Sounds。 作 为 软 件 主 界 面 的 背 景 图 象 的 位 图 文 件Background.bmp, 及 作 为 按 钮 图 象 的 位 图Chimera.bmp 都 存 入Images 目 录 中。 将 声 音 文 件Growl.wav 存 入Sounds 目 录。
<p><font color="#ffffff">----</font>
<b>图 象 按 钮</b>
<p><font color="#ffffff">----</font>
1 . 启 动Delphi 3.0 IDE, 新 建 项 目AutoHide.dpr, 主 窗 体 单 元 命 名 为Main.pas, 存 入C:\AutoHide 目 录。 在 主 窗 体 上 放 入 三 个TImage 组 件, 主 要 属 性 按 表1 设 置。
<p><font color="#ffffff">----</font>
表1 主 窗 体 和 各 组 件 属 性 设 置
<pre>
组 件 属 性 设 置
Form1 Caption Auto Hide Button
Name MainForm
Image1 Align alClient
Name BackgroundImage
Picture (TBitmap)
Stretch True
Visible True
Image2 Align alNone
Name PictureImage
Picture (TBitmap)
Stretch True
Transparent True
Visible False
Image3 Align alNone
Cursor crHandPoint
Name ButtonImage
Picture (None)
Stretch False
</pre>
<p><font color="#ffffff">----</font>
BackgroundImage 的Picture 属 性 装 入Background.bmp,PictureImage 的Picture 属 性 装 入Chimera.bmp。ButtonImage 重 叠 于PictureImage 之 上, 置 于 背 景 图 象 的 特 定 位 置。
<p><font color="#ffffff">----</font>
2 . 建 立ButtonImage 的OnMouseMove 事 件, 当 鼠 标 移 至 其 上 时PictureImage 显 现:
<pre>
PictureImage.Visible:=True;
</pre>
<p><font color="#ffffff">----</font>
3 . 建 立BackgroundImage 的OnMouseMove 事 件, 当 鼠 标 移 开ButtonImage 时PictureImage 隐 藏:
<pre>
PictureImage.Visible:=False;
</pre>
<p><font color="#ffffff">----</font>
4 . 创 建ButtonImage( 注 意: 不 是PictureImage) 的OnClick 事 件, 以 响 应 鼠 标 点 击 完 成 规 定 动 作。 不 失 一 般 性, 在 此 仅 显 示 一 行 信 息。
<pre>
MessageBeep($FFFF);
ShowMessage('Welcome to the Delphi.');
</pre>
<p><font color="#ffffff">----</font>
5 . 编 译、 运 行。 软 件 启 动 后 进 入 主 界 面, 在 背 景 图 象 上 没 有 菜 单, 也 没 有 按 钮, 如 图1 所 示。
<p><font color="#ffffff">----</font>
当 鼠 标 移 至 猎 豹 头 部 时, 豹 头 变 成 狮 头 按 钮, 且 鼠 标 变 为 手 指, 如 图2 所 示。
<p><font color="#ffffff">----</font>
当 鼠 标 移 出 狮 头 范 围 时, 狮 头 隐 藏, 恢 复 主 界 面 图 象。 若 点 击 狮 头 按 钮, 则 出 现 信 息 窗( 见 图3):
<pre>
Welcome to the Delphil.
</pre>
<p><font color="#ffffff">----</font>
<b>音 响 效 果</b>
<p><font color="#ffffff">----</font>
如 果 要 在 上 述“ 自 动 隐 藏” 按 钮 加 上 音 响 效 果, 可 以 在 狮 头 出 现 时 利 用PlaySound() 播 放 一 个 声 音 文 件(.wav)。
<p><font color="#ffffff">----</font>
但 是, 不 能 将PlaySound() 直 接 加 入ButtonImage 的OnMouseMove 事 件 中。 这 是 因 为, 当 鼠 标 在 按 钮 上 移 动 时,PlaySound() 会 不 断 重 复 执 行。 务 必 确 保 按 钮 出 现 时 声 音 文 件 只 播 放 一 次 ! 须 如 此 这 般:
<p><font color="#ffffff">----</font>
1. 为 调 用PlaySound() 函 数, 并 控 制 声 音 文 件 的 播 放 次 数, 在Main.pas 单 元 的implementation 段 加 入:
<pre>
uses
mmsystem;
var
noHide: Boolean;
</pre>
<p><font color="#ffffff">----</font>
2. 创 建 主 窗 体MainFrom 的OnCreate 事 件 处 理 程 序, 以 初 始 化noHide 变 量:
<pre>
noHide:=True;
</pre>
<p><font color="#ffffff">----</font>
3. 将ButtonImage 的OnMouseMove 事 件 处 理 程 序 改 为(begin 与end 之 间 的 语 句):
<pre>
if noHide then
begin
PictureImage.Visible:=True;
PlaySound('Sounds\Growl',0,SND_ASYNC);
noHide:=False;
end;
</pre>
<p><font color="#ffffff">----</font>
4. 将BackgroundImage 的OnMouseMove 事 件 处 理 程 序 改 为(begin 与end 之 间 的 语 句):
<pre>
PictureImage.Visible:=False;
noHide:=True;
</pre>
<p><font color="#ffffff">----</font>
重 新 编 译 和 运 行。 此 时, 当 鼠 标 移 至 猎 豹 头 部 时, 张 牙 舞 爪、 咆 哮 着 的 狮 头 出 现, 惊 心 动 魄。
<p><font color="#ffffff">----</font>
以 上 例 程 编 译 和 运 行 环 境 是Delphi 3.0 和 中 文Windows 98。
<p align="right"><small><em>中国计算机世界出版服务公司版权所有</em></small>
<br>
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -