Anwenden von FireMonkey-Bildeffekten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu FireMonkey-Bildeffekte


FireMonkey-Effekte sind nicht visuelle Komponenten, die sich in der Kategorie Effekte der Tool-Palette befinden. Ein Effekt hat nur ein visuelles Ergebnis, wenn er einer visuellen Komponente untergeordnet ist. Sie können Effekte für alle 2D-Komponenten anwenden. Bildeffekte arbeiten nicht mit 3D-Steuerelementen, außer mit TViewport3D, einem 2D-Steuerelement, das 3D-Inhalt anzeigt.

Anwenden von FireMonkey-Bildeffekten für visuelle Komponenten

Führen Sie die folgenden Schritte aus, um einen Effekt anzuwenden:

1. Doppelklicken Sie in der Tool-Palette auf den gewünschten Effekt. Dadurch wird der Effekt dem Formular hinzugefügt. Der hinzugefügte Effekt wird in der Strukturansicht als untergeordnetes Element des Formulars angezeigt:

Choose Effect from Tool Palette.png

Effect in Structure View.png

Effekte in der Tool-Palette

Einem Formular hinzugefügter Effekt


2. Ziehen Sie in der Strukturansicht den Effekt unter die Komponente, für die der Effekt angewendet werden soll. Nun ist der Effekt einer visuellen Komponente, in diesem Beispiel Image1, untergeordnet:

Child effect.png

Der für ein Bild angewendete TBloomEffect

Anpassen von Effekteigenschaften

Fast alle Effekte verfügen über spezielle Eigenschaften, die Sie je nach Anwendung anpassen können. Die Eigenschaften werden im Objektinspektor angezeigt, wenn der Effekt in der Strukturansicht ausgewählt wird:

Effects properties.png

TBloomEffect-Eigenschaften

Ein Effekt wirkt sich auf alle Pixel einer Komponente aus. Das visuelle Ergebnis ist von den Pixeln der anzupassenden Komponente abhängig. Beispielsweise ändern Effekte, die ausdrücklich alphasensitiv sind, die transparenten Pixel nicht. Das visuelle Ergebnis eines Effekts kann durch Ändern von bestimmten Eigenschaften des Effekts verstärkt werden.

Im nächsten Beispiel wird für Button1 der Effekt TBloomEffect und für Button2 kein Effekt angewendet. Da die Standardfarben der Schaltfläche bereits hell sind, hat TBloomEffect mit den Standardeigenschaftswerten kein sichtbares Ergebnis. Wenn Sie aber die TBloomEffect-Eigenschaften ändern, wird das Ergebnis sichtbar:

Eigenschaften Ergebnis

Default properties.png

Default properties result.png

Customized properties.png

Customized properties result.png


Standardmäßig ist die Eigenschaft Enabled aller Effekte auf True gesetzt, und der Effekt wird sofort angewendet, sobald eine visuelle Komponente als übergeordnete Komponente zugewiesen wird. Das Flag Enabled eines Effekts kann programmseitig oder im Formular-Designer gesetzt werden:

Festlegen von Enabled im Objektinspektor Programmseitiges Festlegen von Enabled

Set Enable.png

Delphi:

BloomEffects1.Enable:=False;

C++:

BloomEffects1->Enable = false;

Setzen von Effektauslösern

Bildeffekte können durch Eigenschaftsänderungen ausgelöst werden, die als Reaktion das Flag Enabled setzen. Auslöser (Trigger) arbeiten nicht mit jeder beliebigen Eigenschaft, sondern nur mit denjenigen, die bei der internen Ereignisverarbeitung von Komponenten überprüft werden. Alle integrierten Auslöser überprüfen boolesche Eigenschaften. Per Konvention beginnen diese Eigenschaften mit "Is".

TControl stellt vier Auslöser für jedes Steuerelement und jede Form bereit:

  • IsDragOver
  • IsFocused
  • IsMouseOver (dafür muss HitTest auf True gesetzt sein)
  • IsVisible

Weitere integrierte Auslöser:

Hinweis: Ein etwas abweichender Satz von Auslösern steht für animierte Effekte zur Verfügung. FMX.Controls.TControl definiert zusätzlich zu ApplyTriggerEffect die Prozeduren StartTriggerAnimation, StartTriggerAnimationWait und StopTriggerAnimation.

Effekte können so festgelegt werden, dass sie angewendet werden, wenn eine dieser Eigenschaftsänderungen programmseitig oder per Benutzeraktion erfolgt. Wenn die Auslösebedingung nicht mehr zutrifft, wird der Effekt entfernt. Auslösebedingungen sind beschränkt auf Gleichheitsprüfungen, und wenn der Auslöser mehr als eine Bedingung enthält, müssen alle zu True ausgewertet werden, damit die Animation ausgelöst wird.

Ein Auslöser wird als String mit einer oder mehreren durch Komma getrennten Auslösebedingungen ausgedrückt. Jede Auslösebedingung besteht aus dem Eigenschaftsnamen, einem Gleichheitszeichen und dem Auslösewert. Alle integrierten Auslöser sind boolesch, daher muss ihr Wert entweder True oder False sein. Zum Beispiel:

     Delphi:
IsMouseOver := True;
IsPressed := False;
     C++:
IsMouseOver = true;
IsPressed = false;

Auslösebedingungen werden in der Eigenschaft Trigger gespeichert.

Animieren von Effekten

Einige wenige einfache Bildeffekte, wie TInvertEffect, haben keine zusätzlichen Eigenschaften; sie sind entweder aktiviert oder deaktiviert. Die meisten Effekte verfügen aber über Eigenschaften, die die Aspekte ihres Verhaltens steuern, wie eine numerische Stärke oder Anzahl. Insbesondere haben Übergänge die Eigenschaft Progress, einen Prozentsatz von 0 bis 100. Diesen Eigenschaften kann zum Erstellen von dynamischen visuellen Effekten im Code oder im Objektinspektor ein TFloatAnimation-Objekt zugeordnet werden. Informationen zur Animation des Verlaufs des Übergangs finden Sie unter Anwenden eines Animationseffekts für eine Eigenschaft eines Bildeffekts.

Siehe auch