Używam Delphi 6 Professional. Jestem relacje ze libraty DLL, który deklaruje typ enumberated następująco:Jak iterować zainicjowane typy wyliczeniowe za pomocą Delphi 6 i uniknąć błędu "out of bounds"?
TExtDllEnum = (ENUM1 = $0, ENUM2 = $1, ENUM3 = $2, ENUM4 = $4, ENUM5 = $8, ENUM6 = $10);
Jak widać wartości inicjowany nie są ciągłe. Gdy próbuję iteracyjne typ za pomocą pętli for w następujący sposób:
var
e: TExtDllEnum;
begin
for e := Low(TExtToDllEnum) to High(TExtToDllEnum) do
... // More code
end;
Delphi nadal zwiększa e przez 1 każdym wywołaniu pętli i tym samym tworzy wartości numeryczne dla E, które nie są członkami wyliczeniowej typu (na przykład " 3 '), co prowadzi do błędu "poza granicami". Jak mogę iterować typ wyliczeniowy w pętli for, która generuje tylko prawidłowe wartości dla typu wyliczeniowego?
Dzięki.