Перечисляемые типы в Delphi позволяют создавать упорядоченный перечень элементов. Каждый элемент именуется некоторым идентификатором (имя идентификатора должно быть без пробелов и состоять из букв латинского алфавита) и находиться в списке, по краям обрамленном круглыми скобками. Элементы отделяются друг от друга запятой. Перечисляемые типы в программе делают код нагляднее и понятнее. Также они повышают надежность программ из-за возможности контроля значений, получаемых переменными.
пример:
type TypeMonth = (jan,feb,mar,apr); Color = (red, green, blue, white);
Объявив перечисляемый тип, мы можем задавать переменные данного типа.
var col : Color; Month : TypeMonth;
Для того чтобы присвоить значения переменным напишем операторы:
col := red; Month := feb;
Переменные перечисляемого типа можно создавать сразу, без предварительного описания типа типа переменной.
var Countri : (Russia, France, USA, Poland, Germany, Italy);
Значения перечисляемого типа и порядковые номера этих значений имеют соответствие согласно порядку перечисления. Первое значение имеет порядковый номер 0, второе 1, и т.д. Максимальное возможный порядковый номер равен 65536.
Функция Ord(X) возвращает порядковый номер значения выражения X.
C порядковыми типами применяют еще 2 функции Pred(X) и Succ(X).
Pred(X) - возвращает предыдущее значение.
Succ (X) - возвращает следующее значение.
Расположим на форме кнопку и напишем следующий код:
procedure TForm1.Button1Click(Sender: TObject); var Nalog : Currency; Countri : (Russia, France, USA, Poland, Germany, Italy); begin Countri := USA; case Countri of Russia : Nalog := 99; France : Nalog := 36; USA : Nalog := 75; Poland : Nalog := 76; Germany : Nalog := 92; Italy : Nalog := 45; end; ShowMessage(FloatToStr(Nalog)+ ' $'); ShowMessage(IntToStr(Ord(Countri))); end;
Нажмем на кнопку и получим два сообщения. Первое 75 $ (пусть это будет цена визы в данную страну), второе - 2 (USA по порядку идет третьей, но счет элементов начинается с 0).
Итог: мы познакомились с порядковыми типами в Delphi.