В электронной справке Delphi по Borland Pascal на тему "Case" говорится следующее: Селектор должен иметь перечислимый тип byte- или word-размера, поэтому строки и целочисленный тип Longint не могут быть использованы селектором. Обратите внимание на то, что селекторные типы не накладывают ограничений на использование перечислимых типов, определяемых пользователем (логические типы здесь также работают). Следующий код будет верным:
type
TMyType = ( mt1, mt2, mt3 ) ; var
MyType : TMyType ; begin
{ ... код, присваивающей значение MyType } case MyType of mt1 : DoMT1Stuff ; mt2 : DoMT2Stuff ; mt3 : DoMT3Stuff ; end ;