System.Variant
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.