Эти лады-струны просто для примера или всерьёз? Мне кажется странным желание использовать члены перечисления, в названиях которых фигурирует их численные значения.
Чем "лад := 12" хуже чем "лад := лад12"?
Если при вызове функции, может быть не понятным, что к чему
"нота(5, 3)" менее очевидно, чем "нота(лад5, струна3)"
тогда можно назвать функцию как "НотаЛадСтруна(5, 3)"

Вообще, сколько ошибок на этапе компиляции Вы отловили с помощью такой системы типов? Если много, то на Компонентном Паскале можете соорудить эквивалент перечислениям, но с накладными расходами как-то так:
## Код:
```
МОДУЛЬ М;
ТИП
    Лад* = ССЫЛКА НА ЗАПИСЬ
        зн: ЦЕЛ 
    КОНЕЦ;

    Струна* = ССЫЛКА НА ЗАПИСЬ
        зн: ЦЕЛ 
    КОНЕЦ;

ПЕРЕМ
    лад*: РЯД 13 ИЗ Лад;
    струна*: РЯД 7 ИЗ Струна;

ПРОЦЕДУРА Инициализация;
ПЕРЕМ и: ЦЕЛ;
НАЧАЛО
     ДЛЯ и := 1 ДО 12 ДЕЛАЙ
           НОВЫЙ(лад[и]);
           лад.зн  := и;
     КОНЕЦ;
     ДЛЯ и := 1 ДО 6 ДЕЛАЙ
           НОВЫЙ(струна[и]);
           струна.зн  := и;
     КОНЕЦ
КОНЕЦ Инициализация;

НАЧАЛО
    Инициализация
КОНЕЦ М.

...
н := нота(М.лад[5],  М.струна[3])
```

Если перечислений в программе будет нужно много, то замучаетесь, хотя конечно можно подумать о генераторе таких штук.

Кстати, гитары бывают 4-14 струнными, 19-36 ладовыми. Что делать со всем этим добром при жёстко забитых перечислениях?