System.Variant
Informations C++
De System.hpp
Variant = class(TVarData)
Unité : System
Type : classe
Méthodes de classe : Méthodes System.Variant
Constructeurs et destructeurs de classe : Constructeurs System.Variant
Description
Variant est une implémentation C++ du type intrinsèque Variant de Delphi.
Le type Variant est capable de représenter des valeurs qui changent de type dynamiquement. Alors qu'une variable de n'importe quel autre type est liée statiquement à ce type, une variable de type Variant peut prendre des valeurs de plusieurs types lors de l'exécution. Le type Variant est généralement utilisé quand le véritable type à manipuler varie ou qu'il n'est pas connu lors de la compilation. Alors que les variants offrent une grande souplesse, ils consomment aussi davantage de mémoire que des variables normales et les opérations sur des variants sont substantiellement moins rapides que les opérations sur des valeurs statiquement typées.
Les Variants peuvent contenir diversers valeurs numériques, chaîne, booléenne et date-heure. Si COM est disponible (Windows uniquement) les variants peuvent également contenir des objets OLE Automation. Enfin, les variants peuvent contenir des tableaux des types précédents. La valeur Variant spéciale Unassigned indique qu'on n'a pas encore affecté de valeur à un variant, et la valeur variant spéciale Null indique que des données sont inconnues ou manquantes.
Un variant peut être construit à partir de l'un des types de données suivants :
short
int
float
double
Currency
TDateTime
bool
WordBool
Byte
AnsiString&
char *
wchar_t * const
Ole2::IDispatch* const (Windows uniquement)
Ole2::IUnknown* const (Windows uniquement)
Remarque : Quand un Variant contient un objet OLE Automation, ce variant peut être utilisé pour obtenir et définir des propriétés de l'objet et pour invoquer des méthodes sur l'objet.
Les variables Variant sont toujours initialisées à Unassigned lors de leur première création. Cela est vrai qu'il s'agisse de variables globales, de variables locales ou de parties de structures telles que des tableaux.
Dans du code C++, les tableaux de variant sont généralement créés en utilisant un contructeur Variant avec la macro OPENARRAY :
Variant V(OPENARRAY(int,(0,HighVal,0,HighVal)),varInteger);
Vous pouvez également utiliser la fonction VarArrayCreate, mais cette fonction est conçue pour être utilisée dans du code Delphi et rend le code C++ compliqué.
Remarque : Utilisez uniquement les opérateurs déclarés dans Variant. Le compilateur ignorera les opérateurs que vous avez vous-même surchargés.
Remarque : Pour les opérateurs binaires, si un opérande est de type Variant, l'autre est automatiquement converti en type Variant.