System.Variant

From RAD Studio VCL Documentation (German)
Jump to: navigation, search

C++-Informationen

von System.hpp

Variant = class(TVarData)


Unit: System

Typ: Klasse

Klassenmethoden: Methoden von System.Variant

Klassenkonstruktoren und -destruktoren: Konstruktoren von System.Variant

Beschreibung

Variant ist eine C++-Implementierung des intrinsischen Delphi-Typs Variant.


Der Typ Variant kann Werte repräsentieren, deren Typ sich dynamisch ändert.. Während eine Variable eines beliebigen anderen Typs statisch an diesen Typ gebunden ist, kann eine Variable des Typs Variant zur Laufzeit Werte in verschiedenen annehmen. Der Typ Variant wird häufig in Situationen eingesetzt, in denen der eigentliche Typ, mit dem gearbeitet werden soll, sich ändert oder zur Compilierzeit unbekannt ist. Varianten bieten eine große Flexibilität, brauchen aber mehr Arbeitsspeicherplatz als normale Variablen, und Operationen mit Varianten werden deutlich langsamer als mit statisch typisierten Werten ausgeführt.

Varianten können unterschiedliche nummerische, String-, Boolesche und Datum/Uhrzeit-Werte enthalten. Wenn COM verfügbar ist (nur Windows) können Varianten auch OLE-Automatisierungsobjekte enthalten. Schließlich können Varianten auch Arrays der obigen Typen aufnehmen. Mit dem speziellen Variant-Wert Unassigned wird angegeben, dass einer Variante noch kein Wert zugewiesen wurde; die spezielle Variante Null gibt unbekannte oder fehlende Daten an.

Eine Variante kann aus den folgenden Datentypen erstellt werden:

short

int

float

double

Currency

TDateTime

bool

WordBool

Byte

AnsiString&

char *

wchar_t * const

Ole2::IDispatch* const (nur Windows)

Ole2::IUnknown* const (nur Windows)

Anmerkung:  Wenn ein Variant-Typ ein OLE-Automatisierungsobjekt enthält, können mit der Variante Eigenschaften des Objekts ermittelt und gesetzt sowie Methoden für das Objekt aufgerufen werden.

Variant-Variablen werden bei der Erstellung immer mit Unassigned initialisiert. Dies gilt gleichermaßen für globale, lokale und Variablen, die Teil einer Struktur, wie z.B. eines Array, sind.

In C++-Code werden Varianten-*Arrays normalerweise mit einem Variant-Konstruktor zusammen mit dem Makro OPENARRAY erzeugt:

Variant V(OPENARRAY(int,(0,HighVal,0,HighVal)),varInteger);

Sie können auch die Funktion VarArrayCreate verwenden, aber diese Funktion wurde für die Verwendung in Delphi-Code entwickelt.

Anmerkung:  Verwenden Sie nur die innerhalb von Variant deklarierten Operatoren. Der Compiler ignoriert alle Operatoren, die von Ihnen überladen wurden.
Anmerkung:  Bei binären Operatoren wird, wenn eine Operand den Typ Variant hat, der zweite Operand automatisch in den Typ Variant konvertiert.

Siehe auch

Personal tools