Delphi: Можно ли перечислить все экземпляры запись (~ типизированные константы) в глобальном пространстве имен?

Исходя из исследования, которое я провел до сих пор, я уже предполагаю, что ответ будет отрицательным, но просто чтобы убедиться ... (кроме того, эта запись может быть обновлена ​​после поддержки этого доступно ).

Я думаю, заголовок вопроса уже должен быть самодостаточным, но я пытаюсь сделать следующее: у меня есть структура конфигурации, построенная на константах записи: каждая опция конфигурации, доступная в моем приложении, определяется в центральном месте в виде типизированной константы, которая содержит имя ключа реестра (или INI), его тип данных и значение по умолчанию. Эти константы - это то, что я передаю методам доступа в моей структуре, которые затем реализуют необходимую логику для извлечения и хранения значений параметров.

Теперь я хотел бы расширить информацию в этих записях, чтобы также включить метаданные, которые я могу используйте для автоматического создания файлов ADM / ADMX ( ifdef 'исключено в сборках выпуска), описывающих эти параметры.

Но для этого мне нужно было бы иметь возможность перечислить эти константы, если я не добавлю какой-то явный механизм регистрации, который выглядит как ненужное дублирование.

В идеале, вместо добавления дополнительных полей к типу записи, я бы предпочел объявить метаинформацию в форме атрибутов, но они не могут (пока?) применяться к константам. Кроме того, это ничего не изменит в отношении необходимости перечисления констант в первую очередь.

Предполагая, что в настоящее время это невозможно через RTTI, я, вероятно, рассмотрю возможность помещения метаданных в комментарии и как-то разобрать их. Скорее всего, это будет другой вопрос.

вместо добавления дополнительных полей к типу записи я бы предпочел объявить метаинформацию в форме атрибутов, но они не могут (пока?) применяться к константам. Кроме того, это ничего не изменит в отношении необходимости перечисления констант в первую очередь.

Предполагая, что в настоящее время это невозможно через RTTI, я, вероятно, рассмотрю возможность помещения метаданных в комментарии и как-то разобрать их. Скорее всего, это будет другой вопрос.

вместо добавления дополнительных полей к типу записи я бы предпочел объявить метаинформацию в форме атрибутов, но они не могут (пока?) применяться к константам. Кроме того, это ничего не изменит в отношении необходимости перечисления констант в первую очередь.

Предполагая, что в настоящее время это невозможно через RTTI, я, вероятно, рассмотрю возможность помещения метаданных в комментарии и как-то разобрать их. Скорее всего, это будет другой вопрос.

[информация о платформе: в настоящее время используется Delphi 2010, но у меня уже есть лицензия XE - просто еще не было времени установить ее]

8
задан Oliver Giesen 18 May 2011 в 09:06
поделиться