Domanda

If I have a static array of labels:

Labels: array [0..6] of TLabel;

How can I get the number of labels in a procedure?

Also if anyone could tell me more about the kind of Pascal Inno Setup is using, or if there's some manual for it. I can't do High() on the array, for example.

È stato utile?

Soluzione

Inno Setup Unicode version:

In Unicode versions of Inno Setup you can use the Low, High and even Length functions like known from Delphi. So maybe it's time to move to the Unicode version to write a code like this:

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;

Inno Setup ANSI version:

There is no way to get length or bounds of a static array in ANSI versions of the InnoSetup. There are no Low nor High functions and the Length function is applicable only for string, the GetArrayLength only for dynamic arrays. Just another static array Inno Setup nitpick.

Source:
http://www.mirality.co.nz

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top