Anwenden von FireMonkey-Bildeffekten
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.
Inhaltsverzeichnis
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:
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:
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:
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 |
---|---|
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 |
---|---|
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:
- IsActive (TCustomForm)
- IsChecked (TMenuItem)
- IsOpen (TEffect)
- IsPressed (FMX.StdCtrls.TCustomButton)
- IsSelected (TMenuItem, TTabItem, TListBoxItem, TTreeViewItem)
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.