System.Variant

De Appmethod Libraries
Aller à : navigation, rechercher

Object Pascal

type Variant = { built-in type };

C++

class RTL_DELPHIRETURN Variant: public TVarData

Propriétés

Type Visibilité  Source Unité  Parent
type
class
public
System.pas
sysvari.h
System System

Description

Variant est une implémentation C++ du type intrinsèque Variant de Object Pascal.

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 Object Pascal 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.