System.TypInfo.TPublishableVariantType

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

System.Variants.TInvokeableVariantTypeSystem.Variants.TCustomVariantTypeSystem.TNoRefCountObjectSystem.TObjectTPublishableVariantType

Delphi

TPublishableVariantType = class(TInvokeableVariantType, IVarInstanceReference)

C++

class PASCALIMPLEMENTATION TPublishableVariantType : public System::Variants::TInvokeableVariantType

Eigenschaften

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

Beschreibung

TPublishableVariantType ist eine Basisklasse für benutzerdefinierte Variantentypen. Die Klasse ermöglicht die Bearbeitung der als published deklarierten Eigenschaften eines Objekts, das die Daten der Variante repräsentiert.

TPublishableVariantType ist die Basisklasse für Datentypen mit Eigenschaften und Methoden für Varianten. Die von TPublishableVariantType abgeleiteten Objekte entsprechen nicht den Varianten selbst. Sie dienen als Hilfsklassen, die von benutzerdefinierten Varianten zum Durchführen von Operationen verwendet werden. TPublishableVariantType implementiert automatisch alle als published deklarierten Eigenschaften des Objekts, das seine Daten speichert.

Anmerkung:  So leiten Sie einen Variantentyp von TPublishableVariantType ab:

Anmerkung:  1. Ordnen Sie den Speicherplatz für die Daten einer Variante einem TVarData-Record zu.

Anmerkung:  2. Schreiben Sie eine Methode, die Instanzen der benutzerdefinierten Variante erstellt. In dieser Methode werden dem Objekt die Daten der Variante zugewiesen (siehe Schritt 1).

Anmerkung:  3. Leiten Sie eine Klasse von TPublishableVariantType ab.

Anmerkung:  4. Überschreiben Sie die Methode GetInstance so, dass sie das Objekt zurückgibt, das die Daten der benutzerdefinierten Variante speichert.

Anmerkung:  5. Implementieren Sie das weitere Verhalten der neuen Klasse (einschließlich der Regeln für die Typkonvertierung). Überschreiben Sie dazu die entsprechenden virtuellen Methoden (normalerweise DoFunction, DoProcedure, BinaryOp, UnaryOp, CompareOp oder Compare, Cast, CastTo, Clear, Copy, IsClear, LeftPromotion und RightPromotion).

Anmerkung:  6. Erstellen Sie im initialization-Abschnitt der Unit, in der Ihr TPublishableVariantType-Nachkomme deklariert ist, eine Instanz der Kasse. Beim Instantiieren des Objekts wird es automatisch für das Variantenverarbeitungssystem registriert, damit der neue Variantentyp genutzt werden kann.

Anmerkung:  7. Geben Sie im finalization-Abschnitt der Unit, in der Ihr TPublishableVariantType-Nachkomme deklariert ist, die Instanz der Kasse frei. Dadurch wird die Registrierung des Variantentyps automatisch aufgehoben.

Anmerkung:  Ein Beispiel finden Sie in der Unit VarCmplx (Windows) bzw. FMTBcd (Linux). In diesen Units wird ein benutzerdefinierter Varianttyp für komplexe (Windows) bzw. binärcodierte dezimal (Linux) Zahlen implementiert.

Anmerkung:  Erzeugen Sie in C++ keine eigenen benutzerdefinierten Variantentypen C++. Diese werden nur in Delphi unterstützt.

Siehe auch