程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi實現Windows標准動畫效果的演示

Delphi實現Windows標准動畫效果的演示

編輯:Delphi

Delphi實現Windows標准動畫效果的演示,包括完整的實現思路和代碼講解,學習Delphi動畫編程不錯的參考資料。在窗體的左邊有多種動畫可供選擇,窗體的右邊可以觀看動畫演示,同時窗體的右下角可以查看當前的動畫狀態。用鼠標點擊“停止”按鈕,可以停止動畫演示,點擊“關閉窗口”按鈕,可以退出演示程序。

要實現這類動畫效果,具體思路是:利用Delphi中的RadioGroup 控件、BitBtn 控件、Animate 控件和StatusText控件等。Animate 是Windows 動畫構件包。使用Animate 對象可以在窗口上安置一個動畫構件。動畫構件是一個靜態顯示交替存取視頻(AVI)剪貼的窗口。一個AVI 剪貼是像電影一樣的一系列位圖幀。盡管AVI 剪貼可以有聲音,但動畫構件僅以無聲的AVI 剪貼工作。Animate 對象可以運行未壓縮的AVI 文件或者運行長度編碼(RLE)壓縮的AVI 剪貼。從AVI 資源和AVI 文件中,Animate 對象可以獲得它的AVI 剪貼。如果應用程序在Windows 9x 或Windows NT 下運行時,則從shell.dll 中,Animate 對象可以獲得它的AVI剪貼。

編寫時要解決三個問題:設計界面、顯示播放動畫狀態和播放動畫。設計界面需要利用到Delphi 6.0 的RadioGroup 控件、BitBtn 控件、Animate 控件和StatusText 控件等。要實現顯示播放動畫狀態,只需定義兩個數組,一個數組用來定義AVI動畫數組,另一個用來定義播放動畫說明文字。播放動畫只需調用AVI 動畫數組中的相關動畫即可。

1.新建工程

(1)啟動Delphi 6.0 程序。選擇“文件”菜單下的“新建”命令,從彈出的子菜單中選擇Application 選項,則出現新建工程的Form1 窗口。

(2)選擇“文件”菜單下的“工程另存為”命令,彈出Save Unit1 As 對話框。在“保存在”列表框中選擇需要存放該窗口文件所在的目錄名;在“文件名”編輯框中填寫文件名,這裡填寫“Main”,點擊“保存”按鈕,保存上面的選項。

(3)執行上一步後,將彈出“工程另存為”對話框。在“保存在”列表框中選擇需要存放該工程的目錄名,最好和第(2)步選取相同的目錄;在“文件名”編輯框中填寫保存處理該工程的源代碼的文件名,這裡填寫“Animator”,點擊“保存”按鈕,保存上面的選項。

2.修改窗口

(1)激活MainForm 窗口,在“屬性”面板中設置該窗體的Caption 屬性為“Windows標准動畫演示”,Color 屬性設置為“clBtnFace”。

(2)選擇“標准”頁上的RadioGroup 選項,在窗體中添加RadioGroup 控件,調整其合適的大小和位置,在“屬性”面板中設置該控件的Name 屬性為“RadioGroup1”,Caption 屬性設置為“選擇動畫”,Columns 設置為1,用鼠標點擊面板中Items 右邊的Tstrings文本框,打開如圖5-10 所示“字串列表編輯器”對話框,在其中輸入“復制文件”、“復制多個文件”、“刪除文件”、“清空回收站”、“查找計算機”、“搜索文件”、“搜索文件夾”和“刪除文件到回收站”,點擊OK 按鈕確定。

(3)選擇“附加”頁上的BitBtn 選項,在窗體中添加三個BitBtn 控件。在“屬性”面板中設置其Caption 屬性分別為“開始”、“停止”和“關閉窗口”,設置其Name 屬性分別為“GoBitBtn”、“StopBitBtn”和“BitBtn1”。按下Shift 鍵,同時選中這三個BitBtn 控件,選擇“編輯”菜單下的“對齊”命令,從彈出的對話框中選擇一種合適的對齊方式,使這三個控件在窗體上排列整齊。

(4)分別選中各個BitBtn 控件,在“屬性”面板中點擊Glyph 屬性右邊的文本框,從彈出的對話框中為BitBtn 控件選擇合適的圖標。選中BitBtn1 控件,在“屬性”面板中設置其Kind 屬性為bkClose。

(5)選擇Win 32 頁上的Animate 選項,在窗體中添加Animate 控件,調整其合適的大小和位置。在“屬性”面板上設置其Color 屬性為“clBtnFace”,設置其Name 屬性分別為“Animate1”。

(6)選擇“標准”頁上的Label 選項,在窗體中添加Label 控件,調整其合適的大小和位置。在“屬性”面板上設置其Caption 屬性為“動畫狀態”。

(7)選擇“附加”頁上的StaticText 選項,在窗體中添加StaticText 控件,調整其合適的大小和位置。在“屬性”面板上設置其Color 屬性為“clBtnFace”,Caption 屬性為“停止動畫”。

下面對代碼進行分析:

(1)在程序的Type 部分需定義兩個數組,一個數組用來定義AVI 動畫數組,另一個用來定義播放動畫說明文字。

type
aviKindArray = array[0 .. 7] of TCommonAvi; //定義動畫數組
aviStringArray = array[0 .. 7] of String; //定義播放動畫說明文字數組
const
aviKinds: aviKindArray =
(aviCopyFile,
aviCopyFiles,
aviDeleteFile,
avIEmptyRecycle,
aviFindComputer,
aviFindFile,
aviFindFolder,
aviRecycleFile);
aviStrings: aviStringArray =
(’復制文件’,
’復制多個文件’,
’刪除文件’,
’清空回收站’,
’查找計算機’,
’搜索文件’,
’搜索文件夾’,
’刪除文件到回收站’);

(2)點擊“開始”按鈕時,程序開始演示選中的動畫,同時在窗體的右下方顯示當前演示的動畫狀態:

procedure TMainForm.GoBitBtnClick(Sender: TObject);
var
AnimIndex: Integer; // 動畫數組目錄
begin
AnimIndex := RadioGroup1.ItemIndex;
with Animate1 do
begin
StatusText.Caption := aviStrings[AnimIndex];
CommonAVI := aviKinds[AnimIndex];
Play(1, FrameCount, 0); // 開始動畫演示
end;
end;

(3)點擊“停止”按鈕時,程序停止動畫演示,同時動畫狀態欄顯示“停止動畫”。

procedure TMainForm.StopBitBtnClick(Sender: TObject);//停止動畫
begin
Animate1.Stop;
StatusText.Caption := ’(停止動畫)’;
end;
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved