4.3.1. Логическая структура
Перечислимый тип определяет упорядоченное множество идентификаторов (имен). Величины не имеют значений и их порядковый номер следуют в той последовательности, в которой имена указаны.
Синтаксис:
type
typeName = (val1, ..., valn)
Значения являются неповторяющимися в пределах программы идентификаторами, количество которых не может быть больше 256, например,
type
color=(red,blue,green);
work_day=(mo,tu,we,th,fr);
winter_day=(december,january,february);
TMode = (mEdit, mWrite, mRead);
Если объявлен перечислимый тип, то в разделе описания переменных необходимо описать переменную этого типа, которой можно присвоить одно из допустимых значений:
var
MyColor: TColor;
...
MyColor := Red;
Для того, чтобы избежать конфликтов с зарезервированными словами рекомендуется указывать для имен перечислимого типа префиксы:
type
TSound = (tsClick, tsClack, tsClock);
TMyColor = (mcRed, mcBlue, mcGreen, mcYellow, mcOrange);
Answer = (ansYes, ansNo, ansMaybe);
Можно использовать конструкцию (val1,..., valn) непосредственно при описании переменной:
var
MyCard: (Club, Diamond, Heart, Spade);
Но при этом нельзя объявить другую переменную, использующей эти же постоянные имена. Таким образом недопустимо
var
MyCard1: (Club, Diamond, Heart, Spade);
var
MyCard2: (Club, Diamond, Heart, Spade);