Benutzerdefinierte Varianten definieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Benutzerdefinierte Varianten definieren - Index


Der Typ Variant ist ein mächtiger vordefinierter Typ der Programmiersprache Delphi. Ein Variant stellt Werte dar, deren Typ zum Zeitpunkt der Compilierung noch nicht definiert ist. Ihr Typ kann sich zur Laufzeit ändern. Ein Variant kann mit anderen Variant- sowie mit Integer-, Real-, String- und Booleschen-Werten zusammen in einem Ausdruck oder einer Zuweisung benutzt werden; der Compiler führt die Typumwandlung automatisch aus.

Standardmäßig können Variants keine Records, Mengen, statischen Arrays, Dateien, Klassen, Klassenreferenzen oder Zeiger als Werte enthalten. Sie können den Variant-Typ jedoch so erweitern, dass er mit jedem der genannten Typen verträglich ist. Dazu erzeugen Sie einfach einen Nachfolger der Klasse TCustomVariantType , der angibt, wie der Variant-Typ Standardoperationen ausführt.

Einen Variant-Typ erzeugen Sie wie folgt:

  1. Speichern Sie die Daten der Variante in einem Record des Typs TVarData.
  2. Deklarieren Sie eine Klasse, die von TCustomVariantType abgeleitet ist. Implementieren Sie in der neuen Klasse die gewünschten Funktionen (einschließlich der Regeln zur Typumwandlung).
  3. Schreiben Sie Hilfsfunktionen, die Instanzen Ihres selbstdefinierten Variant-Typs erzeugen und den Typ erkennen.

Mit diesen Schritten erweitern Sie den Variant-Typ, sodass die Standardoperatoren mit Ihrem neuen Typ zusammenarbeiten und dieser in andere Typen umgewandelt werden kann. Zudem können Sie Ihren Typ so erweitern, dass er von Ihnen definierte Eigenschaften und Methoden unterstützt. Wenn Sie eine Variante erstellen, die Eigenschaften oder Methoden unterstützt, verwenden Sie als Basisklasse TInvokeableVariantType oder TPublishableVariantType statt TCustomVariantType.