Tôi đang sử dụng Delphi 6 Professional. Tôi đang giao tiếp với một libraty DLL khai báo một kiểu gõ như sau:Làm thế nào để lặp lại các kiểu liệt kê được khởi tạo với Delphi 6 và tránh lỗi "ngoài giới hạn"?
TExtDllEnum = (ENUM1 = $0, ENUM2 = $1, ENUM3 = $2, ENUM4 = $4, ENUM5 = $8, ENUM6 = $10);
Như bạn có thể thấy các giá trị khởi tạo không tiếp giáp. Nếu tôi cố gắng lặp kiểu sử dụng một vòng lặp for như sau:
var
e: TExtDllEnum;
begin
for e := Low(TExtToDllEnum) to High(TExtToDllEnum) do
... // More code
end;
Delphi vẫn increments e 1 mỗi vòng lặp gọi và do đó tạo ra giá trị số cho e rằng không phải là thành viên của kiểu liệt kê (ví dụ, ' 3 ') và dẫn đến lỗi' ngoài giới hạn '. Làm thế nào tôi có thể lặp lại kiểu liệt kê trong vòng lặp for chỉ tạo ra các giá trị hợp lệ cho kiểu liệt kê?
Cảm ơn.