gpt4 book ai didi

arrays - 在 Delphi 中访问枚举数组

转载 作者:行者123 更新时间:2023-12-03 18:13:48 24 4
gpt4 key购买 nike

我有枚举类型:

EPosition = (eLEFT, eRIGHT, eUP, eDOWN);

和 EPosition 数组:

position: array[EPosition] of Integer;

分配:

if (Key = VK_UP) then
begin
position[eTOP]:= 1;
end;

if (Key = VK_DOWN) then
begin
position[eDOWN]:= 1;
end;

if (Key = VK_LEFT) then
begin
position[eLEFT]:= 1;
end;

if (Key = VK_RIGHT) then
begin
position[eRIGHT]:= 1;
end;

那么这是我的错误点:

for I := 0 to 3 do
begin
if obSubImage.PreviewROI.position[I] = 1 then
begin
obSubImage.RenderROI.width:= abs(oldNewDiff.X);
obSubImage.RenderROI.height:= formMain.imgPreview.IEBitmap.Height;
obSubImage.RenderROI.x:= obSubImage.PreviewROI.x;
obSubImage.RenderROI.y:= obSubImage.PreviewROI.y;
panOffsetX:= 0;
panOffsetY:= 0;
obSubImage.PreviewROI.position[I]:= 0;
renderLayer(0);
end;
end;

它给出了不兼容的类型:“EPosition”和“Integer”。我知道它为什么给出,我必须像这样写;

    obSubImage.PreviewROI.position[eLEFT]:= 0;

但我不想使用 IF-ELSE 结构。我想访问 LOOP 中数组的所有索引。这可能吗?

最佳答案

您必须在循环中使用 EPosition 类型变量。

使用 i: EPosition 代替 i: integer

for i := eLEFT to eDOWN do

for i := Low(EPosition) to High(EPosition) do

关于arrays - 在 Delphi 中访问枚举数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com