FMX.Controls.Presentation.TPresentedControl
Delphi
TPresentedControl = class(TStyledControl, IMessageSendingCompatible)
C++
class PASCALIMPLEMENTATION TPresentedControl : public Fmx::Controls::TStyledControl
Sommaire
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
class | public | FMX.Controls.Presentation.pas FMX.Controls.Presentation.hpp |
FMX.Controls.Presentation | FMX.Controls.Presentation |
Description
La classe de base pour les contrôles présentés pouvant fournir plusieurs présentations d'interface utilisateur. Un contrôle présenté utilise des objets distincts pour gérer les données utilisées (modèle de données) et la présentation de l'interface utilisateur (couche de présentation).
Les propriétés suivantes des contrôles présentés rendent possible cette séparation des modèles de données et des présentations de l'interface utilisateur :
- Model représente un modèle de données qui contient les données utilisées par un contrôle présenté.
- PresentationProxy autorise le contrôle présenté et le modèle de données à échanger des informations avec le récepteur, qui est la couche de présentation actuelle.
- Receiver est la couche de présentation qui fournit la présentation visuelle de l'interface utilisateur du contrôle.
Le contrôle présenté instancie ces propriétés automatiquement au moment de l'exécution. Un modèle vide est créé dès que vous créez une instance d'un contrôle présenté, et le proxy de présentation est créé lors du chargement de votre contrôle présenté.
Réimplementez DefineModelClass pour déterminer la classe qu'un contrôle présenté utilise pour son modèle de données. Réimplémentez DefinePresentationName pour déterminer le nom du proxy de présentation par défaut qu'utilise un contrôle présenté. Pour définir un nom personnalisé pour le proxy de présentation des instances spécifiques d'un contrôle présenté, gérez l'événement OnPresentationNameChoosing à la place.
La propriété ControlType détermine si la couche de présentation représente votre contrôle en utilisant un contrôle natif de la plate-forme sur laquelle votre application s'exécute (Platform
) ou si la couche de présentation représente votre contrôle en utilisant le système de styles FireMonkey par défaut (Styled
). Sur les plates-formes pour lesquelles FireMonkey ne fournit pas de prise en charge de présentation native, FireMonkey utilise la présentation stylée par défaut quelle que soit la valeur de la propriété ControlType.
Utilisation des présentations
Les contrôles présentés utilisent les méthodes et les propriétés suivantes pour fonctionner avec des présentations :
- La propriété Presentation fournit l'accès à la présentation utilisée. Presentation récupère la présentation à partir de la propriété Receiver de PresentationProxy.
- La propriété PresentationProxy fournit l'accès au proxy de présentation chargé. La méthode LoadPresentation crée et charge le proxy de présentation avec le nom du proxy de présentation renvoyé par le gestionnaire d'événement OnPresentationNameChoosing ou par DefinePresentationName. Puis LoadPresentation appelle InitPresentation et AncestorPresentationLoaded afin de notifier aux contrôles enfant que la nouvelle présentation est chargée. InitPresentation utilise le proxy de la présentation chargée pour envoyer des messages d'initialisation (comme
PM_INIT
,PM_SET_VISIBLE
,PM_GET_SIZE
) à la présentation. LoadPresentation est automatiquement appelé à partir du contrôle Loaded lorsque le fichier de la fiche est lu en mémoire. LoadPresentation utilise la valeur en cours de Presentation Proxy Factory pour récupérer le nom de proxy de présentation approprié ayant été recensé dans la collection de présentations. - La méthode HasPresentationProxy récupère l'information qui indique si le proxy de présentation est chargé ou non.
- La propriété ControlType définit quel type de présentation doit être chargé.
Styled
représente le contrôle stylé FireMonkey standard. Ces contrôles ont la même apparence quelle que soit la version d'une plate-forme donnée. C'est la valeur par défaut.Platform
représente le contrôle natif de la plate-forme cible. La valeur ControlType est utilisée pour générer un nom de classe de proxy de présentation dans DefinePresentationName.
Utilisation des modèles
Les contrôles présentés utilisent les méthodes et les propriétés suivantes pour fonctionner avec des modèles :
- La propriété Model fournit l'accès au modèle de données utilisé par le contrôle présenté. Ce modèle de données Model est créé dans le constructeur du contrôle présenté.
- La méthode DefineModelClass renvoie une référence de classe à une classe de modèle de données que le constructeur du contrôle présenté en cours utilise pour créer un modèle de données pour le contrôle présenté. Par défaut, DefineModelClass renvoie TDataModel. Les classes descendantes réimplémentent DefineModelClass pour déterminer la classe de modèle de données qu'un contrôle présenté descendant utilise pour son modèle de données.
- La méthode GetModel est utilisée dans une classe de contrôle présenté descendant pour transtyper les modèles de données en classe de modèle de données utilisée avec ce contrôle présenté.