AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
Delphi2010 アニメーション(Animate) 2010/10/09
 
前回は[Win32]内の「HotKey」(ホットキー)について見ましたので、今回は同じく[Win32]内の「Animate」(アニメーション)について見てみます。アニメーションは Delphi6 にもあります。

 
まず最初に、「テスト15」(フォルダ「015」)として新規作成しておきます。エディット([Standard]内)を配置して Alignプロパティを「alTop」にして、オープンダイアログ([Dialogs]内)を配置しておきます。

 
アニメーションを配置してみます。1つ目ですので Nameプロパティは「Animate1」となります。

 
アニメーション Animate1 の Alignプロパティを「alClient」にして、Repetitionsプロパティを「1」にして(デフォルトは「0」)、Transparentプロパティを「False」にします。

 
エディット Edit1 をクリックした時の処理 OnClickイベントハンドラを下記のように記述します。
procedure TForm1.Edit1Click(Sender: TObject);
var
 fn : string ;
begin
 fn := Edit1.Text ;
 OpenDialog1.InitialDir := ExtractFilePath(fn);
 OpenDialog1.FileName := ExtractFileName(fn);
 if (OpenDialog1.Execute) then begin
  fn := OpenDialog1.FileName ;
  Edit1.Text := fn ;
  Animate1.FileName := fn ;
  Animate1.Active := True ;
 end;
end;
 
取り合えずこの状態で、保存・コンパイル(再構築)・実行を行います。

↓ エディット Edit1 をクリック

↓ Windows AVIファイルを選択

Windows AVIファイルが開かれて再生します
 
上記は、予め作成しておいたWindows AVIファイルを開いて再生しています。AVIファイルは非圧縮でなければ再生できません(Microsoft Video 1、Intel IYUV コーデック、cinepak codec、などで圧縮されたAVIファイルは開く事は出来ません)。
 
アニメーション・コンポーネントは、機能は少ないですが、動画(非圧縮AVIファイル)を作成してそれを自動的に開いて再生するというようなツールを簡単に作成する事が出来ます。音のデータがあっても音は鳴りません。
 
 
それでは<オブジェクトインスペクタ>を見ていきます。
 
Activeプロパティは、アニメーションファイル(AVIファイル)を開いた後(FileNameプロパティにファイル名を指定した後)、「True」を指定すると、アニメーションの再生を行います。「False」を指定すると、アニメーションの中断をします。このプロパティ値を参照することで、現在アニメーションを再生しているかどうかを取得する事が出来ます。
 
<オブジェクトインスペクタ>には表示されていない実行時プロパティの Openプロパティが「True」になっていないといけません。AVIファイルを開くと、この Openプロパティが「True」になります。
 
 
AutoSizeプロパティを「True」(デフォルト)にすると、開いたAVIファイルの縦横サイズに応じてコントロールの縦横サイズを自動的に合わせます。
 
Centerプロパティを「True」(デフォルト)にすると、アニメーションコントロール内の描画フレームが中央になるよう調整されます。「False」にすると左上合わせとなります。
 
CommonAVIプロパティは、Windowsに標準で入っている「ファイルをコピー中」等の動画データを再生する際に利用します、という事になっていますが、ヘルプで
「CommonAVI は,NT 3.51 では使用できません。」
とありますので注意して下さい。また、このコンポーネントを配置しただけでは、Windows7/Vista でも正常動作しません。正常動作させるためには、[Win32]内の「ShellResources」(シェルリソース)を配置する必要があります。



これを行う事によって正常動作するようになりますので、WindowsVista/7でこのコンポーネントのこの機能を利用する場合には特に注意して下さい。「aviCopyFile」「aviCopyFiles」「aviDeleteFile」「aviEmptyRecycle」「aviFindComputer」「aviFindFile」「aviFindFolder」「aviRecycleFile」のうちから選択して指定できます。デフォルトは「aviNone」です。
 
FileNameプロパティは Windows標準AVIファイル(非圧縮のみ対応)のファイル名を指定します。フルパス状態で指定するのが良いでしょう。指定するとファイルの読み込みが自動的に行われます。ファイルが正常に読み込みできたら、Openプロパティが「True」になります。そのほか、CommonAVIプロパティが「aviNone」に,ResHandleResID が「0」に,ResName が空の文字列に自動的に設定されます。
 
Repetitionsプロパティは、アニメーションの再生回数を指定します。アニメーションの再生が繰り返されて終了すると Activeプロパティは「False」になります。「0」を指定すると、無限に繰り返すようになります(Activeプロパティを「False」にするか、Stopメソッドを実行すると再生を中断します)。
 
StartFrameプロパティは、アニメーションがアクティブになった時に、最初のフレーム(通常は「1」)を示します。このプロパティを指定したあとに Activeプロパティを「True」にすると、そのフレームから再生されます。
 
StopFrameプロパティは、アニメーションがアクティブになった時に、最後のフレームを示します。このプロパティを指定したあとに Activeプロパティを「True」にすると、そのフレームで再生は終了されます。
 
Timersプロパティは、アニメーションの再生がタイマーを使って行われるかどうかを指定します。「True」にすると、タイマーメッセージが利用されるようになり、「False」(デフォルト)にすると別スレッドで再生されます。Timerコンポーネントを利用して何かの処理と同期してアニメーション再生させたい場合には「True」にすると良いらしいです。
 
Transparentプロパティは、アニメーションの背景色の透過を行うかどうかを指定します。「True」(デフォルト)にすると、アニメーションの背景色が、Colorプロパティ値の色になります。「False」にすると、アニメーションの背景色はそのまま表示されます。アニメーションの一部の色がちらちらと変わったりしている場合には、このプロパティが True になっているからかもしれません。
 
 
そのほか、実行時プロパティとして、
FrameCountAVI クリップ内のフレームの合計数
FrameHeightアニメーション内にある各イメージのピクセル単位の高さ
FrameWidthアニメーション内にある各イメージのピクセル単位の幅
ResHandleAVIクリップをリソースとして持つモジュールのウィンドウハンドル
ResIdアニメーションのリソースID
ResNameアニメーションのリソース名
等があります(ヘルプより)。また下記のようなメソッドもあります。
Play(FromFrame:Word;
   ToFrame:Word; Count:Integer)
指定されたフレームを再生
Reset最初のフレームを表示
Seek(Frame: SmallInt)指定されたフレームを表示
Stop再生を中断
 
 
という訳で、動画ファイルを簡単に表示出来るのは良いのですが、やはり、非圧縮のものしか開けないというのは多少辛い気はします。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/10/08
 2010/10/09
▼2010/10/10
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.