System.TypInfo.TPublishableVariantType
Delphi
TPublishableVariantType = class(TInvokeableVariantType, IVarInstanceReference)
C++
class PASCALIMPLEMENTATION TPublishableVariantType : public System::Variants::TInvokeableVariantType
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
class | public | System.TypInfo.pas System.TypInfo.hpp |
System.TypInfo | System.TypInfo |
Description
TPublishableVariantType est la classe de base des types Variant personnalisés qui gèrent les propriétés publiées d'un objet qui représente les données du Variant.
TPublishableVariantType est la classe de base des nouveaux types de données pour les variants dotés de propriétés et de méthodes. Les descendants de TPublishableVariantType ne représentent pas les Variants eux-mêmes. Ils font office de classes utilitaires que les variants personnalisés appellent pour réaliser leurs opérations. TPublishableVariantType ajoute à son ancêtre la capacité d'implémenter des propriétés et des méthodes sur des Variants du type personnalisé en implémentant automatiquement toutes les propriétés publiées de l'objet qu'il utilise pour stocker ses données.
Remarque : Pour créer un type Variant dérivé de TPublishableVariantType,
Remarque : 1. Etablissez une correspondance entre le stockage des données du variant et l'enregistrement TVarData.
Remarque : 2. Ecrivez une méthode qui crée des instances de votre variant personnalisé. Cette méthode remplit les données du variant tel que défini à l'étape 1.
Remarque : 3. Déclarez une classe qui dérive de TPublishableVariantType.
Remarque : 4. Redéfinissez la méthode GetInstance pour renvoyer l'objet qui stocke les données du Variant personnalisé.
Remarque : 5. Implémentez tous les comportements requis (y compris les règles de conversion de type) dans la nouvelle classe. Cela suppose la redéfinition des méthodes virtuelles appropriées (généralement DoFunction, DoProcedure, BinaryOp, UnaryOp, CompareOp ou Compare, Cast, CastTo, Clear, Copy, IsClear, LeftPromotion et RightPromotion).
Remarque : 6. Dans la section d'initialisation de l'unité qui définit votre descendant de TPublishableVariantType, créez une instance de votre classe. Lorsque vous instanciez votre objet, il se recense automatiquement avec le système de traitement des Variants afin que le nouveau type Variant soit activé.
Remarque : 7. Dans la section de finalisation de l'unité qui définit votre descendant de TPublishableVariantType, libérez l'instance de votre classe. Cela permet de dérecenser automatiquement le type Variant.
Remarque : Pour consulter un exemple, reportez-vous à l'unité VarCmplx (Windows) ou FMTBcd (Linux) qui implémente un type Variant personnalisé pour les nombres complexes (Windows) ou décimaux codés binaire (Linux).
Remarque : Ne créez pas vos propres types de variant personnalisés dans C++. Ils ne sont pris en charge qu'en Delphi.