Свойства перечисления должны использовать класс TEnumProperty по умолчанию для редактирования свойств.
Похоже, что информация RTTI не может быть найдена. Где определяется тип enum? В том же файле, что и компонент?
И используете ли вы тип enum с пользовательскими значениями, такими как:
TMyEnum = (aA = 1, aB = 3);
Объяснение: если вы определяете перечисление со значениями, вы создаете тип поддиапазона с предопределенными константами. Таким образом, вышесказанное следует интерпретировать как:
type
TMyEnum = 1..3;
const
aA : TMyEnum = 1;
aB : TMyEnum = 3;
Это может привести к странным ситуациям, таким как: Succ (aA) не aB, а 2.
Информация в справке (Language Guide) Простые типы [Перечислимые типы с явно заданным порядком].
Это может быть источником проблемы.
Если ничего не помогает, вы можете создать свой собственный редактор свойств. Который может изменять свойство enum в инспекторе объектов. Обычно вы сможете использовать TEnumProperty по умолчанию. Но если этого недостаточно, вы можете бросить свой собственный:
Шаг 1, получить редактор свойств. В вашем случае возможно TEnumProperty (модуль DesignEditors) будет достаточно вероятно с небольшими изменениями.
Шаг 2, убедитесь, что методы GetValue и SetValue работают нормально. Им нужно перевести строку в свойство enum и обратно.
Шаг 3, если вам нужно настоящее специальное редактирование, обязательно переопределите метод редактирования.
Шаг 4, убедитесь, что атрибуты редактора действительны.
Шаг 5, зарегистрируйте редактор свойств с помощью RegisterPropertyEditor.
Просто посмотрите руководство по написанию компонентов для получения дополнительной информации.