Grundlegende FireMonkey-Steuerelemente und mit Stilen versehene Steuerelemente

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu FireMonkey-Komponentenhandbuch

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.Controls.TControl eingeführt und dann von jedem grundlegenden Steuerelement überschrieben wird.

Das Erscheinungsbild eines grundlegenden Steuerelements wird von seinen eigenen Eigenschaften, wie Fill oder Stroke definiert.

Grundlegende FireMonkey-Steuerelemente sind:

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 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 (eine 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.StdCtrls.TCheckBox wird beispielsweise aus den folgenden grundlegenden Steuerelementen und Effekten gebildet:

  • TLayout (CheckBoxstyle)
    • TLayout
      • TRectangle (Hintergrund)
        • TGlowEffect
        • TRectangle
        • TRectangle
        • TColorAnimation
        • TColorAnimation
        • TPath (Checkmark)
          • TColorAnimation
      • TText (Text)

Beim Laden eines mit Stilen versehenen Steuerelements wird ein Objekt mit
StyleName = '<Klassenname>style'
geladen. Dann wird das Steuerelement aufgebaut. Zum Beispiel:

objectTLayout
StyleName = 'checkboxstyle'
Position.Point = '(352,391)'
    Width = 121.000000000000000000
    Height = 21.000000000000000000
objectTLayout
      Align = Left
      Width = 20.000000000000000000
      Height = 21.000000000000000000
objectTRectangle
StyleName = 'background'
        Align = Center
Position.Point = '(3,4)'
        Locked = True
        Width = 13.000000000000000000
        Height = 13.000000000000000000
HitTest = False
Fill.Color = xFFEFEFEF
Stroke.Kind = None
objectTGlowEffect
          Trigger = 'IsFocused=true'
          Enabled = False
          Softness = 0.200000002980232200
GlowColor = x82005ACC
          Opacity = 0.899999976158142100
end
objectTRectangle
          Align = Contents
          Locked = True
          Width = 13.000000000000000000
          Height = 13.000000000000000000
HitTest = False
Fill.Kind = Gradient
Fill.Gradient.Points = <
item
              Color = x5FA7A7A7
end
item
              Color = x5FFFFFFF
              Offset = 1.000000000000000000
end>
Stroke.Color = x90404040
end
objectTRectangle
          Align = Contents
Position.Point = '(2,2)'
          Locked = True
          Width = 9.000000000000000000
          Height = 9.000000000000000000
Padding.Rect = '(2,2,2,2)'
HitTest = False
Fill.Kind = None
Stroke.Color = x30505050
end
objectTColorAnimation
          Duration = 0.100000001490116100
          Trigger = 'IsMouseOver=true'
StartValue = xFFEFEFEF
StopValue = xFFA5D9FF
PropertyName = 'Fill.Color'
end
objectTColorAnimation
          Duration = 0.100000001490116100
          Inverse = True
          Trigger = 'IsMouseOver=false'
StartValue = xFFEFEFEF
StopValue = xFFA5D9FF
PropertyName = 'Fill.Color'
end
objectTPath
StyleName = 'checkmark'
          Align = Center
Position.Point = '(2,2)'
          Locked = True
          Width = 9.000000000000000000
          Height = 9.000000000000000000
HitTest = False
Fill.Color = claNull
Stroke.Kind = None
Data.Path = {
            1200000000000000000000000000000001000000CDCC4C3E0000000001000000
            0000003F9A99993E01000000CDCC4C3F00000000010000000000803F00000000
            010000000000803FCDCC4C3E010000003333333F0000003F010000000000803F
            CDCC4C3F010000000000803F0000803F01000000CDCC4C3F0000803F01000000
            0000003F3333333F01000000CDCC4C3E0000803F01000000000000000000803F
            0100000000000000CDCC4C3F010000009A99993E0000003F0100000000000000
            CDCC4C3E010000000000000000000000030000000000000000000000}
objectTColorAnimation
            Duration = 0.100000001490116100
            Trigger = 'IsChecked=true'
TriggerInverse = 'IsChecked=false'
StartValue = x00034E9E
StopValue = xFF034E9E
PropertyName = 'Fill.Color'
end
end
end
end
objectTText
StyleName = 'text'
      Align = Client
Position.Point = '(21,2)'
      Locked = True
      Width = 99.000000000000000000
      Height = 19.000000000000000000
Padding.Rect = '(1,2,1,0)'
HitTest = False
      Text = 'CheckBox'
end
end

Siehe auch