Типы данных пользователя |
Типы данных пользователя могут быть описаны глобально для исходного файла программы (глобальные типы данных), в заголовке интерфейса или логической таблицы, а также в теле процедуры, функции, либо обработчика событий. Тип данных пользователя должен быть описан перед объявлением переменной данного типа. Если тип данных описан глобально для файла программы и не привязан к интерфейсу, то область действия этого описания распространяется на весь файл, но не видно за его пределами. Если тип данных пользователя описан глобально для проекта (как include файл проекта), то видимость этого типа распространяется на весь проект, т.е. на весь сеанс компиляции.
Именами типов данных пользователя могут быть любые допустимые в
идентификаторы. Синтаксис описания следующий:<декларация-типа> = [private | public] type <имя-типа> = <описание-типа> ;
Ключевое слово private определяет тип, видимый только в том компоненте, в котором он был определён. При компиляции других компонентов он будет недоступен. Ключевое слово введено начиная с Атлантис 5.1.23.
Ключевое слово public определяет тип, который будет доступен к использованию при компиляции других компонентов. Ключевое слово public является необязательным и может быть не задан для типов, которые не изменяют свою структуру в зависимости от области видимости. Это сделано с целью совместимости с существующим исходным кодом. Ключевое слово введено начиная с Атлантис 5.1.23.
<описание-типа> = <простой-тип-данных> | <описание-массива> | <описание-ссылки-на-интерфейс> | <описание-структуры> | <описание-позиции> | <ранее-определенный-тип>
<простой-тип-данных> - имя любого простого типа . См. "Простые типы данных. ".
<описание-массива> - описание массива с использованием существующего синтаксиса. См. "Массивы. ".
<описание-ссылки-на-интерфейс> - имя объектного или vip-интерфейса, описанного ранее. См. "Переменные типа ссылки. ".
<описание-структуры> - см. "Структурные типы данных. ".
<описание-позиции> - см. "Позиции. ".
<ранее-определенный_тип> - имя типа данных, ранее определенного пользователем.
Определенный пользователем тип, соответствующий простому типу
, полностью совместим с этим простым типом. Это, например, означает, что два типа данных пользователя, соответствующие одному простому типу совместимы между собой.Если тип пользователя объявлен как массив или как структура, то данный тип совместим только сам с собой.
Пример:
type T1 = array [1..2] of integer; type T2 = array [1..2] of integer;
Типы T1 и T2 между собой несовместимы. При необходимости привести переменную типа T1 к типу T2 необходимо явно вызывать оператор приведения типов.
Ключевые слова private и public введены начиная с Атлантис 5.1.23.