Anzeigen: Object Pascal C++
Anzeigeeinstellungen

Laufzeit-Typinformationen (Object Pascal)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Liste der Object Pascal-Compiler-Direktiven - Index

Typ

Option

Syntax

{$M+} oder {$M-}

{$TYPEINFO ON} oder {$TYPEINFO OFF}

Vorgabe

{$M-}

{$TYPEINFO OFF}

Bereich

Lokal



Die Compiler-Direktive {$M} steuert die Erzeugung der Laufzeit-Typinformationen (RTTI). Wenn eine Klasse im Status {$M+} deklariert wurde oder von einer Klasse abgeleitet ist, die im Status {$M+} deklariert wurde, erzeugt der Compiler Laufzeit-Typinformationen für Eigenschaften und Ereignisse, die in einem published-Abschnitt deklariert sind. Ist eine Klasse im Status {$M+} deklariert und nicht von einer Klasse abgeleitet, die im Status {$M} deklariert wurde, sind published-Abschnitte in dieser Klasse nicht erlaubt. Wenn eine Klasse als forward deklariert ist, muss in der ersten Klassendeklaration $M angegeben werden.

Wenn ein Interface mit der Option $M deklariert wird, erzeugt der Compiler für alle Eigenschaften Laufzeit-Typinformationen. Daher werden bei Interfaces alle Member so behandelt, als ob sie als published deklariert sind.

Hinweis: Die in der Unit Classes der Komponentenbibliothek definierte Klasse TPersistent ist im Status {$M+} deklariert. Aus diesem Grund werden für alle published-Abschnitte einer von TPersistent abgeleiteten Klasse Laufzeit-Typinformationen generiert. Die Komponentenbibliothek verwendet diese Informationen beim Speichern oder Laden von Formulardateien für den Zugriff auf die Werte der Komponenteneigenschaften. In der IDE wird anhand der Laufzeit-Typinformationen die Liste der im Objektinspektor angezeigten Eigenschaften festgelegt.
Hinweis: Das in der Unit System definierte Interface IInvokable ist im Status {$M+} deklariert. Daher werden für alle von IInvokable abgeleiteten Interfaces Laufzeit-Typinformationen generiert. Mithilfe der Routinen in der Unit IntfInfo kann auf die Typinformationen zugegriffen werden.

Die direkte Verwendung der Direktive {$M} ist in einer Anwendung nur sehr selten erforderlich.

Siehe auch

Meine Werkzeuge
In anderen Sprachen