Définition de variants personnalisés

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Définition de variants personnalisés - Index


Le type Variant est un type puissant intégré au langage Object Pascal. Les variants représentent des valeurs dont le type n'est pas déterminé au moment de la compilation. Au contraire, le type de valeur peut changer à l'exécution. Les variants peuvent se combiner à d'autres variants ainsi qu'à des valeurs entières, réelles, chaînes et booléennes dans les expressions et les affectations ; le compilateur effectue automatiquement les conversions de type.

Par défaut, les variants peuvent contenir des valeurs qui sont des enregistrements, des ensembles, des tableaux statiques, des fichiers, des classes, des références de classes ou des pointeurs. Mais, vous pouvez étendre le type Variant afin de travailler avec tout exemple particulier de ces types. Il suffit de créer un descendant de la classe TCustomVariantType qui indique comment le type Variant effectue les opérations standard.

Pour créer un type Variant :

  1. Etablissez une correspondance entre le stockage des données du variant et l'enregistrement TVarData.
  2. Déclarez une classe qui dérive de TCustomVariantType. Implémentez tous les comportements requis (y compris les règles de conversion de type) dans la nouvelle classe.
  3. Ecrivez les méthodes utilitaires permettant de créer les instances de votre variant personnalisé et reconnaître son type.

Les étapes ci-dessus étendent le type Variant de sorte que les opérateurs standard puissent fonctionner avec le nouveau type et que ce dernier puisse être convertit en d'autres types de données. Vous pourrez ultérieurement améliorer votre nouveau type Variant pour qu'il supporte les propriétés et les méthodes que vous définissez. Quand vous créez un type Variant qui supporte les propriétés ou les méthodes, utilisez TInvokeableVariantType ou TPublishableVariantType comme classe de base plutôt que TCustomVariantType.