▼ Mr.XRAYさん
ちょっと話題が変わりますが…。
最近、XRAY様のサイトの記事で、
[ 160_コンポーネントの実行時生成 ] の 03_複数のボタンを作成 ( TList を使用 ) が
非常に参考になりました。m(_ _)m
ボタンを押すとインスタンスが消えるというアレです^^;
と、申しますのは、
FireMonkeyでは、例えば ボタン等 のコンポーネント に TFloatAnimation等を
[構造ビュー] でぶら下げて、適切なプロパティを設定し、
アニメーションを行ったりする事が可能なのですが、
いちいち面倒なので、私としてはもやもやしてました。
※ StyleBookでも指定できますが、プログラムから行いたいし、コンポーネント別に
様々な動きをさせたい為、
一度に複数のコンポーネントのスタイルを変える分にはすごく良いです。
私としては、プログラムからどの様なアニメーションを行うのかを引数で指定し、
関数呼び出しで指示(トリガー)を出し、
勝手にアニメーションを行わせたかったという思いがあったのです。
もちろんアニメーションが終了すればインスタンスも自動的に消滅して欲しい。
そこで、TAutoAnimationという新たなクラスを作りました。
アニメーションの指示があれば、Position、RotationAngle、Scaleプロパティ等を
変化させる TFloatAnimation等 を動的に生成、
生成したインスタンスへのポインタをTListで保存し、アニメーション終了と共に
( OnFinishイベントハンドラに飛んできた時か、Stopメソッドを発行がなされた時 ) 、
TListに登録しているインスタンスやポインタを自動的に消去。
これで、[構造ビュー] や StyleBookを使わずに、
丸投げ出来るアニメーションを作成する事ができました。
問題だったのは、自動的にインスタンスを消滅させるカラクリで悩んでまして、
XRAY様の記事がすごく参考になったのです。感謝します。
Object Pascal HandBookも参考しなりますし、色々とポケットが増えそうで
面白いですね。
|