Frage

Ich habe eine Schaltfläche hinzugefügt und einen BoxBlureFect hinzugefügt und die folgenden Attribute in die gesetzt 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

Ich habe Loop = true festgelegt, denn wenn es falsch ist, wird es nicht plötzlich zum Ende des Werts wird.

Also habe ich es wahr gesetzt. Aber jetzt ist es Looping (wie der Name beschrieben) nicht nur einmal animiert und anhält.

Und ich möchte auch, dass es vom Stoppwert animiert wird, um den Wert zu starten, wenn ich die Maus verlasse (nur einmal). Wenn meine Maus verlässt oder eintritt, muss die neue Animation vom aktuellen Wert nicht vom maximalen oder min -Wert beginnen.

War es hilfreich?

Lösung

Trigger funktioniert nicht immer, wie ich es auch nicht erwarte ...

Sie können es so machen:

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

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

Ohne 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top