Grundlegende FireMonkey-Steuerelemente und mit Stilen versehene Steuerelemente
Nach oben zu FireMonkey-Komponentenhandbuch
Inhaltsverzeichnis |
Grundlegende Steuerelemente
Die grundlegenden Steuerelemente von FireMonkey sind von FMX.Objects.TShape abgeleitet und können sich deshalb selbst zeichnen. Das Zeichnen erfolgt in der Methode Paint, die in FMX.Types.TControl eingeführt wird und dann von jedem grundlegenden Steuerelement überschrieben wird.
Das Erscheinungsbild eines grundlegenden Steuerelements wird von seinen eigenen Eigenschaften, wie Fill, Stroke, StrokeCap, StrokeDash, StrokeJoin und StrokeThickness, definiert.
Grundlegende FireMonkey-Steuerelemente sind:
- FMX.Objects.TLine
- FMX.Objects.TRectangle
- FMX.Objects.TRoundRect
- FMX.Objects.TEllipse
- FMX.Objects.TCircle
- FMX.Objects.TArc
- FMX.Objects.TCustomPath
- FMX.Objects.TText
Erstellen eines grundlegenden FireMonkey-Steuerelements enthält schrittweise Anleitungen zum Erstellen eines eigenen grundlegenden FireMonkey-Steuerelements.
Mit Stilen versehene Steuerelemente
Mit Stilen versehene FireMonkey-Steuerelemente legen das Erscheinungsbild einer Anwendung nicht fest. Stattdessen lesen diese Steuerelemente Stildateien (oder von einer Stilbuchkomponente definierte Stile), um dynamisch eine Liste mit grundlegenden Steuerelementen und deren Eigenschaften auszuwählen. Daher können mit Stilen versehene Steuerelemente das Erscheinungsbild ändern, wenn die Anwendung zu einem neuen Stil wechselt (wenn sie neue Stildefinitionen lädt).
Ein mit Stilen versehenes Steuerelement kann aus jeder Kombination von grundlegenden Steuerelementen, mit Stilen versehenen Steuerelementen und Effekten erzeugt werden. FMX.Controls.TCheckBox wird beispielsweise aus den folgenden grundlegenden Steuerelementen und Effekten gebildet:
- TLayout (CheckBoxstyle)
- TLayout
- TRectangle (Hintergrund)
- TGlowEffect
- TRectangle
- TRectangle
- TColorAnimation
- TColorAnimation
- TPath (Häkchen)
- TColorAnimation
- TText (Text)
- TRectangle (Hintergrund)
- TLayout
Beim Laden eines mit Stilen versehenen Steuerelements wird ein Objekt mit dem StyleName ('<Klassenname>style) geladen. Dann wird das Steuerelement aufgebaut. Zum Beispiel:
object TLayout StyleName = 'checkboxstyle' Position.Point = '(352,391)' Width = 121.000000000000000000 Height = 21.000000000000000000 DesignVisible = False object TLayout Align = alLeft Width = 20.000000000000000000 Height = 21.000000000000000000 object TRectangle StyleName = 'background' Align = alCenter Position.Point = '(3,4)' Locked = True Width = 13.000000000000000000 Height = 13.000000000000000000 HitTest = False Fill.Color = xFFEFEFEF Stroke.Kind = bkNone object TGlowEffect Trigger = 'IsFocused=true' Enabled = False Softness = 0.200000002980232200 GlowColor = x82005ACC Opacity = 0.899999976158142100 end object TRectangle Align = alContents Locked = True Width = 13.000000000000000000 Height = 13.000000000000000000 HitTest = False Fill.Kind = bkGradient Fill.Gradient.Points = < item Color = x5FA7A7A7 end item Color = x5FFFFFFF Offset = 1.000000000000000000 end> Stroke.Color = x90404040 end object TRectangle Align = alContents Position.Point = '(2,2)' Locked = True Width = 9.000000000000000000 Height = 9.000000000000000000 Padding.Rect = '(2,2,2,2)' HitTest = False Fill.Kind = bkNone Stroke.Color = x30505050 end object TColorAnimation Duration = 0.100000001490116100 Trigger = 'IsMouseOver=true' StartValue = xFFEFEFEF StopValue = xFFA5D9FF PropertyName = 'Fill.Color' end object TColorAnimation Duration = 0.100000001490116100 Inverse = True Trigger = 'IsMouseOver=false' StartValue = xFFEFEFEF StopValue = xFFA5D9FF PropertyName = 'Fill.Color' end object TPath StyleName = 'checkmark' Align = alCenter Position.Point = '(2,2)' Locked = True Width = 9.000000000000000000 Height = 9.000000000000000000 HitTest = False Fill.Color = claNull Stroke.Kind = bkNone Data.Path = { 1200000000000000000000000000000001000000CDCC4C3E0000000001000000 0000003F9A99993E01000000CDCC4C3F00000000010000000000803F00000000 010000000000803FCDCC4C3E010000003333333F0000003F010000000000803F CDCC4C3F010000000000803F0000803F01000000CDCC4C3F0000803F01000000 0000003F3333333F01000000CDCC4C3E0000803F01000000000000000000803F 0100000000000000CDCC4C3F010000009A99993E0000003F0100000000000000 CDCC4C3E010000000000000000000000030000000000000000000000} object TColorAnimation Duration = 0.100000001490116100 Trigger = 'IsChecked=true' TriggerInverse = 'IsChecked=false' StartValue = x00034E9E StopValue = xFF034E9E PropertyName = 'Fill.Color' end end end end object TText StyleName = 'text' Align = alClient Position.Point = '(21,2)' Locked = True Width = 99.000000000000000000 Height = 19.000000000000000000 Padding.Rect = '(1,2,1,0)' HitTest = False Text = 'CheckBox' end end