FMXでEffectの初期状態に問題があります

解決


yTake  2021-11-24 05:31:29  No: 149946  IP: 192.*.*.*

FMXでEffectの効果の効くタイミングで困っています。

フォームにボタンを3つ配置しています。それぞれにEffectのGrowEffectを配しています。ちょうどボタンの子になっている形です。
各GrowEffectのEnableed:True、Trigger:IsFocused=Trueとしています。
また、各ボタンのクリックでButton1はButton2にSetFocusし、Button2はButon3にSetFocusし、Button3はButton1にSetFocusしています。
実行すると、各ボタンクリックで自身のフォーカスが外れて次のボタンへフォーカスを移し、そのボタンはGrowEffectの効果が出ています。
意図する動作となっていますが、問題があります。
それはこのプログラムの起動直後のEffectです。3つ全てのボタンにGrowEffectが出てしまっています。
いずれのボタンにもフォーカスをセットしていません。
いずれかボタンをクリックすればその後の動作は意図する通りになっていますが、起動直後に全てのボタンにEffectが効いている状態になってしまっていて、本来Button1にのみフォーカスしたいのですが、フォームのOnCreateでButton1にSetFocusさせていますが、確かにButton1のGrowEffectは良いのですが、Button2とButton3のGrowEffectは必要ないのですが、効いたままになっています。
その後、前述の通り、ボタンクリックで意図する動作になっています。
起動直後の状態のみ意図とは異なる状態になっています。

最初からEffectも意図する様にさせたいのですが、ご助言頂けるでしょうか?


当方は、
XE6, FMX, MS-Windows10 Pro
です

編集 削除
HFUKUSHI  2021-11-24 06:25:55  No: 149948  IP: 192.*.*.*

FMXはよくわからないのですが、
> 各GrowEffectのEnabled:True
これをFalseにしておかないと、最初にエフェクトが実行されちゃうのではないでしょうか?
(TrueにするのはTriggerで

編集 削除
yTake  2021-11-24 07:37:42  No: 149949  IP: 192.*.*.*

HFUKUSHIさん
ありがとうございます。
なるほど、Enableだと初期値としてTriggerの有無にかかわらずGlowEffectが効いてしまうものとして、Falseから始めればよいわけですね。
フォームのOnCreateでEnable化する際に一通りSetFocusしてTriggerを効かせれば、正しく動作するので、所望のボタンのみにFocusさせられました。

大変ありがとうございました。

編集 削除