2

ボタンを追加し、それに BoxBlurEffect を追加して、次の属性を に設定しましたBoxBlurEffect1

//extracted form fmx file 

object BoxBlurEffect1: TBoxBlurEffect
  Trigger = 'IsMouseOver=true'
  Enabled = False
  BlurAmount = 0.009999999776482582
  object FloatAnimation1: TFloatAnimation
    AnimationType = atInOut
    Enabled = True
    Duration = 1.000000000000000000
    Loop = True
    Trigger = 'IsMouseOver=true'
    TriggerInverse = 'IsMouseOver=false'
    StartValue = 0.009999999776482582
    StopValue = 10.000000000000000000
    PropertyName = 'BlurAmount'
  end
end

loop = true を設定したのは、 false の場合はアニメーション化されていないため、値が突然終了するためです。

だから私はそれをtrueに設定しました。しかし今では、一度アニメーション化して停止するだけでなく、(名前が説明したように) ループしています。

また、マウスを離したときに停止値から開始値までアニメーション化する必要があります(1回だけ)。マウスが離れたり入ったりすると、新しいアニメーションは最大値または最小値からではなく、現在の値から開始する必要があります。

4

1 に答える 1

6

トリガーは、私が期待するように常に機能するとは限りません...

次のように実行できます。

procedure TForm2.Button1MouseEnter(Sender: TObject);
begin
  BoxBlurEffect1.AnimateFloat('BlurAmount', 10, 1);
end;

procedure TForm2.Button1MouseLeave(Sender: TObject);
begin
  BoxBlurEffect1.AnimateFloat('BlurAmount', 0, 1);
end;

TFloatAnimation を使用しない場合:

  object Button1: TButton
    Position.Point = '(264,192)'
    Width = 80.000000000000000000
    Height = 22.000000000000000000
    OnMouseEnter = Button1MouseEnter
    OnMouseLeave = Button1MouseLeave
    TabOrder = 1
    StaysPressed = False
    IsPressed = False
    Text = 'Button1'
    object BoxBlurEffect1: TBoxBlurEffect
      BlurAmount = 0.009999999776482582
    end
  end
于 2011-10-18T12:41:06.920 に答える