Я использую Delphi 6 Профессиональный. Я взаимодействую с библиотекой DLL, которая объявляет перечисляемый тип следующим образом:
TExtDllEnum = (ENUM1 = $0, ENUM2 = $1, ENUM3 = $2, ENUM4 = $4, ENUM5 = $8, ENUM6 = $10);
Как видите, инициализированные значения не являются смежными. Если я попытаюсь повторить тип с помощью цикла for следующим образом:
var
e: TExtDllEnum;
begin
for e := Low(TExtToDllEnum) to High(TExtToDllEnum) do
... // More code
end;
Delphi по-прежнему увеличивает e на 1 при каждом вызове цикла и тем самым создает числовые значения для e, которые не являются членами перечисляемого типа (например, '3'), и приводит к ошибке «вне пределов». Как я могу выполнить итерацию перечислимого типа в цикле for, который генерирует только допустимые значения для перечисляемого типа?
Спасибо.