6.6.5 Публикуемые (Published) свойства

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

Классы, скомпилированные с ключём {$M+} (например, TPersistent из модуля classes) может иметь раздел published (опубликованно). Для методов, полей и свойств в этом разделе (published), компилятор генерирует информацию RTTI (Run Time Type Information) , которая может быть использована для запроса определенных здесь методов, полей и свойств в published секции (ях). Модуль typinfo содержит необходимые процедуры, для запроса этой информации, и этот модуль используется в системе потоковой передачи в FPC в модуле classes.

RTTI генерируется независимо спецификатора чтения и записи: поля, функции и процедуры (простые или индексированные).

Только типизированные поля класса могут быть опубликованы. Любое простое свойство, размер которого меньше или равна указатель, может быть объявлен published: floats (вещественные), integers (целые), sets (множества) (с менее чем 32 различных элементов), enumerateds (перечисления), классы или динамические массивы (но не массив свойств).

Хотя информация о типе во время выполнения доступна для других типов, эти типы не могут быть использованы для определения свойств или полей в секции published. Информация присутствует, чтобы описать например аргументы процедур или функций.