?? lc_bcb_26.txt
字號:
在C++Builder中實現(xiàn)動畫
在C++Builder中實現(xiàn)動畫
中 國 氣 象 局 監(jiān) 測 網(wǎng) 絡(luò) 司
信 息 網(wǎng) 絡(luò) 處--夏 登 城
一、 直 接 使 用Animate 部 件
----在 您 的 程 序 中 只 要 增 加 一 個Animate
部 件, 并 設(shè) 置 其 部 分 屬 性 就 可 實 現(xiàn) 動 畫, 但 缺 點 就 在
于Animate 部 件 只 能 打 開 已 有 的AVI 視 屏 文 件( 或 使 用Windows
公 用AVI), 有 一 定 的 系 統(tǒng) 開 銷。
----在 板2(Panel2) 中 加 入 一 個Animate 部
件 (Animate1), 我 們 設(shè) 置 其FileName 或CommonAVI 及Active 屬 性 以 使
其 執(zhí) 行 某AVI 視 屏 文 件 或Windows 公 用AVI。 設(shè) 置Animate1 的CommonAVI
屬 性 值 為aviFindFolder, 它 將 執(zhí) 行 我 們 常 見 的 在 搜 索 文 件
夾 過 程 中 的 搜 索 動 畫。
----為 控 制Animate1 的 動 作, 為 第 一 個 復(fù)
選 框 (CheckBox1) 的OnClick 事 件 增 加 代 碼 如 下:
void __fastcall TDemoForm::
CheckBox1Click(TObject *Sender)
{
Animate1 ->Active = CheckBox1 ->Checked;
}
二、 使 用Timer 部 件 定 時 繪 制 畫 面
----在C + +Builder 的System 標(biāo) 簽 中 有 一 個Timer
部 件, 使 用Timer 部 件 實 際 上 是 使 用Windows 定 時 器, 定 時 繪
制 部 分 畫 面, 達(dá) 到 動 畫 效 果。
----準(zhǔn) 備 幾 張 連 續(xù) 的Bmp 圖 片, 如 下 所
示:
----Pic0.bmp Pic1.bmp Pic2.bmp Pic3.bmp 在 板3(Panel3)
中 加 入Image 部 件(Image1), 并 預(yù) 裝 入 一 幅 圖 片( 如: Pic3.bmp)。
----為 在 程 序 中 存 儲 這 些 圖 片, 在 主
窗 體 的 頭 文 件 中 增 加 變 量 定 義:
TPicture *pic[4]; // 存 儲 圖 片 的 指 針
int number; // 記 錄 當(dāng) 前 圖 片 序 號
----并 為 主 窗 口 的OnCreate 事 件 增 加 代
碼, 在 程 序 主 窗 口 創(chuàng) 建 時 裝 入 圖 片, 即:
void __fastcall TDemoForm::FormCreate(TObject *Sender)
{
number = 0;
AnsiString Path = ExtractFilePath(Application ->ExeName);
for(int i=0; iLoadFromFile(Path +
“pic" +I(xiàn)ntToStr(i) +“.bmp");
}
catch(...) {
Application ->MessageBox
(“\n 無 法 打 開 圖 片 文 件...\t\n",
“ 錯 誤", MB_ICONWARNING|MB_OK);
} }
}
----增 加Timer 部 件(Timer1), 設(shè) 置 其 時
間 間 隔 Interval 屬 性 為200 毫 秒; 另 外, 設(shè) 置Timer1 的Enabled 屬 性
值 為false。 為 定 時 更 換 繪 制 圖 片, 為Timer1 的OnTimer 事 件 增
加 代 碼 如 下:
void __fastcall TDemoForm::
Timer1Timer(TObject *Sender)
{
Image1 ->Canvas ->CopyRect
(Image1 ->ClientRect,
pic[number] ->Bitmap ->Canvas,
Rect(0, 0, pic[number] ->Width,
pic[number] ->Height));
number + +;
number %=4;
}
----為 第 二 個 復(fù) 選 框(CheckBox2) 的OnClick
事 件 增 加 代 碼 如 下, 以 控 制 動 畫 的 執(zhí) 行 與 停 止:
void __fastcall TDemoForm::CheckBox2Click
(TObject *Sender)
{
Timer1 ->Enabled = CheckBox2 ->Checked;
}
----使 用Timer 部 件, 定 時 繪 制 畫 面 也
并 不 復(fù) 雜, 但 因 為 要 存 儲 多 幅 圖 片, 系 統(tǒng) 開 銷 卻 是 相
當(dāng) 大 的, 但 其 動 畫 效 果 卻 也 相 當(dāng) 好。
三、 利 用 程 序 空 閑 時 間 更 換/ 重 繪 畫 面
----OnIdle 事 件 是TApplication 類 的 事 件 之
一。 當(dāng) 應(yīng) 用 程 序 空 閑 時, 程 序 就 會 產(chǎn) 生OnIdle 事 件, 利 用
程 序 空 閑 執(zhí) 行 動 畫 不 是 很 妙 嗎 ?
----首 先 在 演 示 程 序 主 窗 體 的 第 四
個 板 (Panel4) 上 增 加 一 個 標(biāo) 簽(Lable1), 根 據(jù) 你 的 個 人
愛 好 設(shè) 置 其 Caption 及Font 等 屬 性。 再 在 主 窗 體 的 類 定 義 中
增 加 一 個OnIdle 事 件 處 理 函 數(shù), 它 像 普 通 函 數(shù) 一 樣 定
義, 但 需 保 證 其 原 型 正 確。 我 們 定 義 的OnIdle 事 件 處 理
函 數(shù) 在 主 窗 體 的 頭 文 件 中 作 如 下 申 明:
----void __fastcall MyIdleHandler(TObject *Sender, bool
& Done);
----其 完 整 代 碼 為:
void __fastcall TDemoForm::MyIdleHandler
(TObject *Sender, bool &Done)
{
int StartTime = GetTickCount();
if(Label1 ->Top +Label1 ->Height>0) {
Label1 ->Top - -;
}
else {
Label1 ->Top = Panel4 ->Height;
}
while(GetTickCount() -StartTime
----請 注 意, 為 避 免 移 動 標(biāo) 簽 速 度 過
快, 使 用 了 下 面 的 代 碼 段:
int StartTime = GetTickCount();
...
while(GetTickCount() -StartTime
----它 保 證 了 動 畫 的 時 間 間 隔 不 少
于50 毫 秒。
----為 第 三 個 復(fù) 選 框(CheckBox3) 的OnClick
事 件 增 加 代 碼 如 下:
void __fastcall TDemoForm::CheckBox3Click
(TObject *Sender)
{
if(CheckBox3 ->Checked) {
Application ->OnIdle = MyIdleHandler;
}
else {
Application ->OnIdle = NULL;
}
}
----為 保 證 程 序 執(zhí) 行 的 安 全 性, 還 需
在 程 序 結(jié) 束 時 做 一 些 必 要 的 處 理( 如 釋 放 程 序 運 行 過
程 中 分 配 的 空 間)。 為 主 窗 體 的OnDestroy 事 件 增 加 代 碼 如
下:
void __fastcall TDemoForm::FormDestroy
(TObject *Sender)
{
for(int i=0; iOnIdle = NULL;
}
返回
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
大尺度一区二区|
视频在线观看91|
日日夜夜一区二区|
福利一区福利二区|
懂色av一区二区在线播放|
粉嫩aⅴ一区二区三区四区五区|
国产欧美在线观看一区|
精品成人a区在线观看|
国产成人午夜99999|
99精品视频一区|
首页国产丝袜综合|
国产 欧美在线|
天天影视涩香欲综合网|
久久综合狠狠综合|
亚洲免费在线电影|
狠狠色2019综合网|
亚洲综合在线视频|
中文字幕欧美三区|
欧美aaaaa成人免费观看视频|
国产精品资源在线看|
亚洲一区二区三区四区五区中文
|
最新日韩在线视频|
丝袜a∨在线一区二区三区不卡|
国产伦精品一区二区三区在线观看|
国产精品国产自产拍高清av|
日韩和欧美的一区|
91国在线观看|
亚洲欧美一区二区久久
|
欧美少妇xxx|
国产精品自产自拍|
欧美大胆一级视频|
精品国偷自产国产一区|
欧美高清激情brazzers|
欧美日免费三级在线|
国产精品日韩成人|
中文字幕日韩av资源站|
国产成人午夜片在线观看高清观看|
欧美一区二区三区喷汁尤物|
亚洲第一在线综合网站|
亚洲成人中文在线|
欧美日韩国产免费|
日韩福利电影在线|
精品免费国产一区二区三区四区|
亚洲精品一区二区三区福利|
美国三级日本三级久久99|
国产一区二区三区最好精华液|
欧美一三区三区四区免费在线看
|
欧美精品粉嫩高潮一区二区|
欧美中文字幕亚洲一区二区va在线
|
国产日产欧产精品推荐色|
亚洲精品一区二区三区精华液|
国产电影一区二区三区|
亚洲欧美成人一区二区三区|
欧美日韩免费在线视频|
久久这里只有精品首页|
成人夜色视频网站在线观看|
亚洲男帅同性gay1069|
91精品国产综合久久精品图片|
国产麻豆精品久久一二三|
一区二区三区精品|
久久久影视传媒|
欧美日韩国产三级|
自拍偷自拍亚洲精品播放|
欧美一级生活片|
91麻豆swag|
成人黄色大片在线观看|
欧美va日韩va|
欧美日韩国产大片|
色噜噜狠狠成人网p站|
国v精品久久久网|
婷婷夜色潮精品综合在线|
国产精品色呦呦|
国产色综合一区|
亚洲制服欧美中文字幕中文字幕|
精品成人一区二区|
欧美成人性战久久|
精品一区二区三区影院在线午夜|
亚洲精品成人天堂一二三|
国产欧美精品一区二区三区四区
|
日韩精品国产欧美|
午夜影院久久久|
日韩激情一二三区|
国产电影一区在线|
国产成人精品在线看|
麻豆精品视频在线观看|
中文字幕一区二区三区四区不卡|
国产日产欧美一区|
亚洲嫩草精品久久|
亚洲成人激情自拍|
欧美另类变人与禽xxxxx|
欧美亚洲日本国产|
亚洲精品一区二区三区福利|
欧美精品乱码久久久久久按摩|
av电影在线观看一区|
夫妻av一区二区|
在线观看不卡一区|
欧美猛男gaygay网站|
亚洲六月丁香色婷婷综合久久|
亚洲成人av电影在线|
一区二区国产视频|
日韩精品成人一区二区在线|
国产福利精品导航|
成人高清免费在线播放|
日韩美女一区二区三区四区|
欧美色综合天天久久综合精品|
在线观看国产91|
欧美在线免费观看视频|
欧美综合色免费|
欧美一区二区三级|
国产嫩草影院久久久久|
亚洲一区二区影院|
久久国产日韩欧美精品|
www.亚洲激情.com|
国产精品美女久久久久久久久
|
亚洲最色的网站|
日韩av不卡一区二区|
中文字幕一区二区三区不卡在线|
亚洲一区在线看|
紧缚奴在线一区二区三区|
欧美系列日韩一区|
这里是久久伊人|
欧美日韩在线亚洲一区蜜芽|
欧美精品一区视频|
91在线观看污|
6080日韩午夜伦伦午夜伦|
欧美韩国一区二区|
午夜精品福利一区二区三区av|
91视频观看免费|
日韩女同互慰一区二区|
国产精品一二三四|
日韩三级在线观看|
在线区一区二视频|
亚洲精品一区二区在线观看|
日本亚洲三级在线|
在线播放91灌醉迷j高跟美女|
亚洲影院理伦片|
成人免费的视频|
久久久久久久久久电影|
日本成人在线视频网站|
欧美日韩一区二区三区不卡|
亚洲欧美综合色|
91福利视频久久久久|
国产精品久久久久永久免费观看
|
欧美亚洲图片小说|
青青国产91久久久久久|
欧美tickling挠脚心丨vk|
久色婷婷小香蕉久久|
久久精品人人做人人综合|
日本高清视频一区二区|
日韩电影在线一区|
国产精品中文有码|
国产精品久久久久永久免费观看|
精品国产一二三区|
国产精品一线二线三线精华|
18成人在线视频|
欧美一区二区国产|
亚洲色图第一区|
精品国产伦一区二区三区观看体验|
日韩欧美一区在线|
欧美三级中文字|
国产精品午夜久久|
美女脱光内衣内裤视频久久网站
|
91精品国产乱|
色中色一区二区|
国产福利精品一区二区|
男男视频亚洲欧美|
亚洲一级在线观看|
色老汉av一区二区三区|
精品一区二区免费视频|
91精品国产91久久久久久最新毛片
|
一区二区三区电影在线播|
欧美一区二区成人6969|
99久久久无码国产精品|
国产欧美一区二区精品忘忧草|
一本久道中文字幕精品亚洲嫩|
国产成人在线电影|
日本一区二区三区高清不卡|
欧美男男青年gay1069videost
|
99久久伊人精品|
久久99精品国产91久久来源|
欧美一a一片一级一片|
成人综合激情网|
成人黄色小视频|
91精品办公室少妇高潮对白|
欧美伊人久久久久久久久影院|
色综合久久久网|
亚洲国产sm捆绑调教视频|
色哟哟国产精品免费观看|
国产亲近乱来精品视频|
亚洲欧洲成人精品av97|
亚洲日本在线观看|
亚洲高清视频的网址|
精品国产一区二区三区不卡|
中文字幕人成不卡一区|
欧美日韩精品欧美日韩精品一|
日本少妇一区二区|
国产精品情趣视频|
69堂成人精品免费视频|
91麻豆精品国产自产在线
|
成人av影视在线观看|