Estoy usando Delphi 6 Professional. Estoy de interfaz con un Libraty DLL que declara un tipo enumberated de la siguiente manera:¿Cómo se iteran los tipos enumerados inicializados con Delphi 6 y se evita el error "fuera de límites"?
TExtDllEnum = (ENUM1 = $0, ENUM2 = $1, ENUM3 = $2, ENUM4 = $4, ENUM5 = $8, ENUM6 = $10);
Como se puede ver los valores inicializados no son contiguas. Si intento para iterar el tipo utilizando un bucle como sigue:
var
e: TExtDllEnum;
begin
for e := Low(TExtToDllEnum) to High(TExtToDllEnum) do
... // More code
end;
Delphi todavía incrementos e por 1 cada invocación de bucle y de este modo crea valores numéricos para e que no son miembros de la tipo enumerado (por ejemplo, ' 3 '), y que da como resultado un error' fuera de límites '. ¿Cómo puedo iterar el tipo enumerado en un ciclo for que solo genera valores válidos para el tipo enumerado?
Gracias.