System.Variants.TCustomVariantType

Aus Appmethod Libraries
Wechseln zu: Navigation, Suche

System.TObjectTCustomVariantType

Object Pascal

TCustomVariantType = class(TObject, IInterface)

C++

class PASCALIMPLEMENTATION TCustomVariantType : public System::TObject

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
class public
System.Variants.pas
System.Variants.hpp
System.Variants System.Variants

Beschreibung

TCustomVariantType ist die Basisklasse für benutzerdefinierte variante Object Pascal-Typen.

Verwenden Sie TCustomVariantType zum Definieren neuer Datentypen für Object Pascal-Varianten. Die von TCustomVariantType abgeleiteten Objekte entsprechen nicht den Varianten selbst. Sie dienen als Hilfsklassen, die von benutzerdefinierten Varianten zum Durchführen von Operationen verwendet werden.

So erstellen Sie einen Varianten-Typ:

1. Ordnen Sie den Speicherplatz für die Daten eines Variant-Werts einem TVarData-Record zu.

2. Schreiben Sie eine Methode, die Instanzen des benutzerdefinierten Variant-Typs erstellt. In dieser Methode werden dem Record die Daten des Variant-Objekts zugewiesen (siehe Schritt 1).

3. Deklarieren Sie eine Klasse, die von TCustomVariantType abgeleitet ist.

4. Implementieren Sie in der neuen Klasse die gewünschten Funktionen (einschließlich der Regeln zur Typumwandlung). Hierzu müssen die betreffenden virtuellen Methoden (in der Regel BinaryOp, UnaryOp, CompareOp oder Compare, Cast, CastTo, Clear, Copy, IsClear, LeftPromotion und RightPromotion) überschrieben werden.

5. Erstellen Sie im initialization-Abschnitt der Unit, in der Ihr TCustomVariantType-Nachkomme deklariert ist, eine Instanz der Kasse. Beim Instantiieren des Objekts wird es automatisch für das Variant-Verarbeitungssystem registriert, damit der neue Variant-Typ genutzt werden kann.

6. Geben Sie im finalization-Abschnitt der Unit, in der Ihr TCustomVariantType-Nachkomme deklariert ist, die Instanz der Kasse frei. Dadurch wird die Registrierung des Variant-Typs automatisch aufgehoben.

Anmerkung:  In C++ können benutzerdefinierte Variant-Typen verwendet werden, von TCustomVariantType abgeleitete Klassen müssen aber in Object Pascal implementiert sein.

Beachten Sie beispielsweise die Unit FMTBcd, die einen benutzerdefinierten Variant-Typ für binärcodierte Dezimalzahlen implementiert.

Tip:  Verwenden Sie TInvokeableVariantType als Basisklasse, um einen benutzerdefinierten Variant-Typ zu erstellen, der Benutzern das Aufrufen von Methoden oder Prozeduren sowie das Abrufen und Einstellen von Eigenschaftswerten ermöglicht.

Siehe auch