RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
System.High Function

Returns the highest value in the range of an argument.

Pascal
procedure High(X);
C++
High( X);

System

In Delphi code, call High to obtain the upper limit of an Ordinal, Array, or ShortString value. The result type is X, or the index type of X. 

X is either a type identifier or a variable reference. The type denoted by X, or the type of the variable denoted by X, must be one of the following:

For this type 
High returns 
Ordinal type (includes Int64)  
The highest value in the range of the type  
Array type  
The highest value within the range of the index type of the array. For empty arrays, High returns –1.  
short string type  
The declared size of the string  
Open array  
The value, of type Integer, giving the number of elements in the actual parameter minus one  
short string parameter  
The value, of type Integer, giving the number of elements in the actual parameter minus one  

 

Delphi Examples: 

{
This example requires a button and two list boxes.  Two lists
of floating point numbers are generated initially and
displayed in the list boxes. Clicking the button sums the lists.
Notice that the range of the list arrays can be any integers,
as long as Low is less than High.
}
var
  List1: array[0..3] of Double;
  List2: array[5..17] of Double;

function Sum( var X: array of Double): Double;
var
  I: Word;
  S: Real;
begin
  S := 0; { Note that open array index range is always zero-based. }
  for I := 0 to High(X) do S := S + X[I];
  Sum := S;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  S, TempStr: string;
begin
  Str(Sum(List1):4:2, S);
  S := 'Sum of List1: ' + S + #13#10;
  S := S + 'Sum of List2: ';
  Str(Sum(List2):4:2, TempStr);
  S := S + TempStr;
  MessageDlg(S, mtInformation, [mbOk], 0);

end;

procedure TForm1.FormCreate(Sender: TObject);
var
  X: Word;
begin
  for X := Low(List1) to High(List1) do
  begin
      List1[X] := X * 3.4;
      ListBox1.Items.Add(FloatToStr(List1[X]));
  end;
  for X := Low(List2) to High(List2) do
  begin
      List2[X] := X * 0.0123;
      ListBox2.Items.Add(FloatToStr(List2[X]));
  end;
end;

 

Low 

VarArrayHighBound

Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
What do you think about this topic? Send feedback!