自 動 隱 藏 的 聲 象 按 鈕 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
此為轉貼資料 http://www2.ccw.com.cn/tips/9904/041401_05.asp
自 動 隱 藏 的 聲 象 按 鈕
海 南 大 學
葉 鬥 彪
---- [ 本 文 ? 摘 略, 全 文 可 下 載,Zip 157KB
---- 另 有 以 下 壓 縮 文 件 可 以 下 載:
---- 示 例 的exe 402KB;
---- 源 程 序 1KB;
---- 主 窗 體 280KBKB ]
---- 隨 著 計 算 機 的 日 益 普 及 和 多 媒 體 技 術 的 不 斷 發 展, 多 媒 體 計 算 機 輔 助 教 學(MCAI) 軟 件 正 改 變 人 們 傳 統 的 學 習 方 式。MCAI 軟 件 的 操 作 界 面 賞 心 悅 目, 特 別 是 具 有 音 響 效 果 且 能 自 動 隱 藏 的 圖 象 按 鈕 或 菜 單, 圖、 文、 聲 並 茂, 確 實 ? 軟 件 添 色 不 少, 深 受 用 戶 喜 愛。 以 下 介 紹 用Delphi 實 現 上 述 功 能 的 技 術。
---- 准 備 工 作
---- 建 好 應 用 軟 件 主 目 錄C:\AutoHide 及 其 子 目 錄Images 和Sounds。 作 ? 軟 件 主 界 面 的 背 景 圖 象 的 位 圖 文 件Background.bmp, 及 作 ? 按 鈕 圖 象 的 位 圖Chimera.bmp 都 存 入Images 目 錄 中。 將 聲 音 文 件Growl.wav 存 入Sounds 目 錄。
---- 圖 象 按 鈕
---- 1 . ? 動Delphi 3.0 IDE, 新 建 項 目AutoHide.dpr, 主 窗 體 單 元 命 名 ?Main.pas, 存 入C:\AutoHide 目 錄。 在 主 窗 體 上 放 入 三 個TImage 組 件, 主 要 屬 性 按 表1 設 置。
---- 表1 主 窗 體 和 各 組 件 屬 性 設 置
組 件 屬 性 設 置
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
---- BackgroundImage 的Picture 屬 性 裝 入Background.bmp,PictureImage 的Picture 屬 性 裝 入Chimera.bmp。ButtonImage 重 疊 於PictureImage 之 上, 置 於 背 景 圖 象 的 特 定 位 置。
---- 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.0 和 中 文Windows 98。 *********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together!
希望能大家敞開心胸,將知識寶庫結合一起
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |