Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
prog:lazarus:components:properties [02/05/2020 12:54] thierry [Published] |
prog:lazarus:components:properties [10/05/2020 18:52] (Version actuelle) thierry [Property Published de Type Object doivent être assignées] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Les membres publiés ont la même visibilité que les membres publics.\\ | Les membres publiés ont la même visibilité que les membres publics.\\ | ||
La différence est que des informations de type à l'exécution (RTTI) sont générées pour les membres publiés. Ces informations permettent à une application d'interroger dynamiquement les champs et les propriétés d'un objet et de localiser ses méthodes. Les RTTI sont utilisées pour accéder aux valeurs des propriétés lors de la lecture ou de l'enregistrement des fichiers fiche, pour afficher les propriétés dans l'inspecteur de propriétés et pour associer des méthodes spécifiques (appelées gestionnaires d'événements) à des propriétés spécifiques (appelées événements). | La différence est que des informations de type à l'exécution (RTTI) sont générées pour les membres publiés. Ces informations permettent à une application d'interroger dynamiquement les champs et les propriétés d'un objet et de localiser ses méthodes. Les RTTI sont utilisées pour accéder aux valeurs des propriétés lors de la lecture ou de l'enregistrement des fichiers fiche, pour afficher les propriétés dans l'inspecteur de propriétés et pour associer des méthodes spécifiques (appelées gestionnaires d'événements) à des propriétés spécifiques (appelées événements). | ||
+ | ==== Assign pour les properties de type Object ==== | ||
+ | Quand une ''Property Published'' est un objet.\\ | ||
+ | On doit l'assigner avec un ''SetXXX'' et ''OBJECT.Assign''.\\ | ||
+ | Sinon il ne sera pas initialiser pas le système lors de la création du component. | ||
+ | <code delphi> | ||
+ | published | ||
+ | property Margin: TMarginObject read FMargin write SetMargin; // BIEN ! | ||
+ | property Margin: TMarginObject read FMargin write FMargin; // PAS BIEN ! | ||
+ | | ||
+ | // Avec: | ||
+ | procedure TMonObjet.SetMargin(AValue: TMarginObject); | ||
+ | begin | ||
+ | FMargin.Assign(AValue); | ||
+ | end; | ||
+ | </code> | ||
+ | |||
==== Récuperer le nom et type des properties published ==== | ==== Récuperer le nom et type des properties published ==== | ||
<code delphi> | <code delphi> |