1.2.47. $M или $TYPEINFO : Генерировать информацию о типах

На верх  Назад  Вперёд

Для классов, которые компилируются в состоянии {$M+} или {$TYPEINFO ON}, компилятор будет генерировать Run-Time Type Information (RTTI ). Все классы-потомки от класса, который компилируется с состоянием {$M+}, также будут получать информацию RTTI. Любые классы, которые используются как поле или свойство, будут также получать информацию RTTI.

По умолчанию Run-Time Type Information генерируется для общедоступных разделов (published) создающих их эквиваленты для общедоступных (public) разделов. Только если класс (или один из его родительских классов) был откомпилирован в состоянии {$M+}, компилятор будет генерировать RTTI для методов и свойств в общедоступных разделах.

Объект TPersistent, который представлен в модуле classes (часть RTL ), сгенерирован в состоянии {$M+}. Генерация RTTI позволяет программистам получить доступ к общедоступным свойствам объекта, без необходимости знать актуальный класс объекта.

Run-Time Type Information доступна через модуль TypInfo, который является частью Free Pascal Run-Time Library.

ПРИМЕЧАНИЕ

Поточная система, реализованная на Free Pascal, требует, чтобы все потоковые компоненты были потомками от TPersistent. Возможно создание классов с общедоступными разделами, которые не являются потомками TPersistent, но эти классы не будут являться правильными потоками потоковой системы модуля Classes.