Да. Ознакомьтесь с первой частью Основы Delphi: перечисления, поддиапазоны и наборы.
Да, Delphi имеет следующую конструкцию перечислимого типа:
type
TDigits = (dgOne, dgTwo, dgThree <etc>);
Также, как и в C, каждый символ перечислимого типа может иметь заданное значение, например:
type
TDigits = (dgOne = 1, dgTwo, dgThree <etc>);