画像の変化を始めるコードを記述する
ビジュアル設計ツールを使って、簡単に画面の設計ができました。コンポーネントに元々用意されたアニメーション機能を使って、画像をじわじわと変化させるための準備もできました。
あとはイベントハンドラを使って
- ボタンがクリックされたら、画像を表示しアニメーションを開始させる
- 制限時間が来たら、画面クリアする
の2つの動作を設定します。どちらも1行のコードを記述するだけです。
ボタンがクリックされたときの処理を記述する
C++Builderでは、イベント駆動型のコードを簡単に記述することができます。コンポーネントに対して、それぞれイベントが用意されており、これらのイベントが発生したタイミングで実行されるコードをオブジェクトインスペクタを使って簡単に定義することができます。
まず、「ボタンがクリックされたら画像を表示しアニメーションを開始させる」処理を定義しましょう。
設計画面上でButton1を選択します。オブジェクトインスペクタの[イベント]タブをクリックすると、Button1に対するさまざまなイベントが表示されます。この中から、OnClickイベントを選択し、値列をダブルクリックします。すると、図のようにButton1のOnClickイベントハンドラが生成されます。
![](http://cz-cdn.shoeisha.jp/static/images/article/6575/ahapp10.jpg)
ここにアニメーションを開始させる以下のコードを記述します。
BitmapAnimation1->Start();
画面をクリアする処理を記述する
次に「制限時間が来たら、画面クリアする」コードを記述しましょう。
画面下の[デザイン]タブをクリックして、再び設計画面を表示します。画面左上の[構造]ペインにリストされたBitmapAnimation1を選択します。すると、オブジェクトインスペクタ上にBitmapAnimation1のプロパティ/イベントが表示されます。オブジェクトインスペクタの[イベント]タブをクリックして、OnFinish イベントハンドラの値列をダブルクリックします。
![](http://cz-cdn.shoeisha.jp/static/images/article/6575/ahapp11.jpg)
すると、BitmapAnimation1のOnFinishイベントハンドラが生成されますので、ここに以下のコードを記述します。
Image1->Bitmap->Clear(claSkyblue);
この1行のコードで、アニメーションが終了した時点(制限時間が経過した時点)で、画面を SkyBlue色でクリアします。
![](http://cz-cdn.shoeisha.jp/static/images/article/6575/ahapp12.jpg)
以上でアプリケーションは完成です。
後はキーボードの[F9]ボタンを押し、アプリケーションをビルドして実行します。
![](http://cz-cdn.shoeisha.jp/static/images/article/6575/ahapp13.jpg)