Contrôles primitifs et contrôles stylés FireMonkey
Remonter à Guide des composants FireMonkey
Contrôles primitifs
Les contrôles primitifs FireMonkey sont hérités de FMX.Objects.TShape, et ils savent donc comment se dessiner eux-mêmes. Le dessin est réalisé par la méthode Paint, qui est introduite dans FMX.Controls.TControl puis redéfinie par chaque contrôle primitif.
L'apparence d'un contrôle primitif est définie par ses propres propriétés, telles que Fill ou Stroke.
Voici les contrôles primitifs FireMonkey :
- FMX.Objects.TLine
- FMX.Objects.TRectangle
- FMX.Objects.TRoundRect
- FMX.Objects.TEllipse
- FMX.Objects.TCircle
- FMX.Objects.TArc
- FMX.Objects.TCustomPath
- FMX.Objects.TText
Création d'un contrôle primitif FireMonkey présente des intructions étape par étape pour la création de votre propre contrôle primitif FireMonkey.
Contrôles stylés
Les contrôles stylés FireMonkey ne définissent pas l'apparence. A la place, ils lisent les fichiers de styles (ou les styles définis par un composant livre de styles) pour sélectionner dynamiquement une liste de contrôles primitifs avec leurs propriétés. Ainsi, les contrôles stylés peuvent changer l'apparence quand l'application bascule sur un nouveau style (chargement de nouvelles définitions de styles).
Un contrôle stylé peut être construit à partir d'une combinaison de contrôles primitifs, de contrôles stylés et d'effets. Par exemple, FMX.StdCtrls.TCheckBox est construit à partir des contrôles primitifs et des effets suivants :
- TLayout (CheckBoxstyle)
- TLayout
- TRectangle (arrière-plan)
- TGlowEffect
- TRectangle
- TRectangle
- TColorAnimation
- TColorAnimation
- TPath (coche)
- TColorAnimation
- TText (texte)
- TRectangle (arrière-plan)
- TLayout
Quand un contrôle stylé est chargé, un objet est chargé avec
StyleName = '<nomclasse>style'
Le contrôle est ensuite construit. Par exemple :
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