System.Variants.TCustomVariantType

De Appmethod Libraries
Aller à : navigation, rechercher

System.TObjectTCustomVariantType

Object Pascal

TCustomVariantType = class(TObject, IInterface)

C++

class PASCALIMPLEMENTATION TCustomVariantType : public System::TObject

Propriétés

Type Visibilité  Source Unité  Parent
class public
System.Variants.pas
System.Variants.hpp
System.Variants System.Variants

Description

TCustomVariantType est la classe de base des types variant personnalisés Object Pascal.

Utilisez TCustomVariantType pour définir de nouveaux types de données pour les Variants Object Pascal. Les descendants de TCustomVariantType 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.

Pour créer un a type Variant,

1. Etablissez une correspondance entre le stockage des données du Variant et l'enregistrement TVarData.

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.

3. Déclarez une classe qui dérive de TCustomVariantType.

4. 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 BinaryOp, UnaryOp, CompareOp ou Compare, Cast, CastTo, Clear, Copy, IsClear, LeftPromotion, et RightPromotion).

5. Dans la section d'initialisation de l'unité qui définit votre descendant de TCustomVariantType, 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é.

6. Dans la section de finalisation de l'unité qui définit votre descendant de TCustomVariantType, libérez l'instance de votre classe. Cela permet de dérecenser automatiquement le type Variant.

Remarque :  C++ peut utiliser des types Variant personnalisés mais les descendants de TCustomVariantType doivent être implémentés dans Object Pascal.

Pour consulter un exemple, reportez-vous à l'unité FMTBcd qui implémente un type Variant personnalisé pour les nombres décimaux codés binaire.

Conseil :  Pour créer un Variant personnalisé qui permet aux utilisateurs d'appeler des méthodes ou des procédures et d'obtenir ou de définir des valeurs de propriétés, utilisez TInvokeableVariantType en guise de classe de base.

Voir aussi