如何获得静态数组的长度?

loo*_*oop 2 arrays inno-setup

如果我有一个静态标签数组:

Labels: array [0..6] of TLabel;
Run Code Online (Sandbox Code Playgroud)

如何获取程序中的标签数量?

此外,如果有人可以告诉我更多关于Pascal Inno安装程序使用的类型,或者是否有一些手册.例如,我不能对数组执行High().

TLa*_*ama 5

InnoSetup ANSI版本:

在InnoSetup的ANSI版本中无法获得静态数组的长度或边界.没有Low也没有High函数,该Length函数仅适用于字符串,GetArrayLength仅适用于动态数组.只是another静态阵列InnoSetup nitpick.

资源:
http://www.mirality.co.nz

InnoSetup Unicode版本:

在InnoSetup的Unicode版本中,您可以使用Low,High甚至可以使用LengthDelphi中已知的功能.所以也许是时候转到Unicode版本来编写这样的代码了:

function InitializeSetup(): Boolean;
var
  Labels: array [0..6] of TLabel;
begin
  MsgBox(
    'Array length: ' + IntToStr(Length(Labels)) + #13#10 +
    'Array low bound: ' + IntToStr(Low(Labels)) + #13#10 +
    'Array high bound: ' + IntToStr(High(Labels)),
    mbInformation, MB_OK);
end;
Run Code Online (Sandbox Code Playgroud)

  • @Sertac,就是这样!Unicode版本具有"高"和"低",而ANSI则没有. (2认同)