如果我有一个静态标签数组:
Labels: array [0..6] of TLabel;
如何获取程序中的标签数量?
此外,如果有人能告诉我更多关于Pascal Inno安装程序正在使用的类型,或者是否有一些手册。例如,我不能对数组执行High()。
答案 0 :(得分:5)
InnoSetup ANSI版本:
无法在InnoSetup的ANSI版本中获取静态数组的长度或边界。没有Low
和High
函数,Length
函数仅适用于字符串,GetArrayLength
仅适用于动态数组。只需another
静态数组InnoSetup nitpick。
InnoSetup Unicode版本:
在InnoSetup的Unicode版本中,您可以使用Delphi中已知的Low
,High
甚至Length
函数。所以也许是时候转到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;