System.Variants.TInvokeableVariantType

De Appmethod Libraries
Aller à : navigation, rechercher

System.Variants.TCustomVariantTypeSystem.TObjectTInvokeableVariantType

Object Pascal

TInvokeableVariantType = class(TCustomVariantType, IVarInvokeable)

C++

class PASCALIMPLEMENTATION TInvokeableVariantType : public TCustomVariantType

Propriétés

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

Description

TInvokeableVariantType est la classe de base des types Variant personnalisés qui implémentent des Variants personnalisés dotés de propriétés et de méthodes.

Utilisez TInvokeableVariantType pour définir de nouveaux types de données pour les variants Object Pascal dotés de propriétés et de méthodes. Les descendants de TInvokeableVariantType 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.

Remarque :  Ne définissez pas les descendants de TInvokeableVariantType dans C++. La logique des types de Variants personnalisés doit être définie dans le code Object Pascal.

Pour créer un type Variant acceptant des propriétés et des méthodes :

  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 TInvokeableVariantType.
  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 DoFunction, DoProcedure, GetProperty, SetProperty, BinaryOp, UnaryOp, CompareOp or Compare, Cast, CastTo, Clear, Copy, IsClear, LeftPromotion et RightPromotion).
  5. Dans la section d'initialisation de l'unité qui définit votre descendant de TInvokeableVariantType, 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 TInvokeableVariantType, libérez l'instance de votre classe. Cela permet de dérecenser automatiquement le type Variant.

Pour consulter un exemple, reportez-vous à l'unité VarConv qui implémente un type Variant personnalisé pour les mesures.

Conseil :  Si le type Variant personnalisé utilise une instance d'objet pour stocker ses données, vous pouvez implémenter automatiquement les propriétés publiées de cet objet en dérivant votre type Variant personnalisé de TPublishableVariantType à la place.

Voir aussi