RAD Studio VCL Reference
|
Returns high bound for a dimension in a variant array.
function VarArrayHighBound(const A: Variant; Dim: Integer): Integer;
int VarArrayHighBound(const Variant A, int Dim);
VarArrayHighBound returns the high bound of the given dimension in the given variant array. The Dim parameter should be 1 for the leftmost dimension, 2 for the second leftmost dimension, and so on. An exception is raised if the variant given by A is not an array (EVariantInvalidArgError), or if the dimension specified by Dim does not exist (EVariantBadIndexError).
C++ Examples:
/* This example demonstrates the use of variant arrays. In this example a variant array is created, modified, populated and then freed. */ void __fastcall TForm1::Button1Click(TObject *Sender) { Variant array; int bounds[2] = {0, 9}; /* Create a variant array of 10 elements, starting at 0 and ending at 9. The array contains elements of type integer */ array = VarArrayCreate(bounds, 1, varInteger); // Increase the length of the variant array VarArrayRedim(array, 49); MessageDlg(String("Variant array has ") + IntToStr(VarArrayDimCount(array)) + " dimensions", mtInformation, TMsgDlgButtons() << mbOK, 0); // Traverse the array from lower to higher bounds for (int i = VarArrayLowBound(array, 1); i <= VarArrayHighBound(array, 1); i++) { // Put the element I at index I VarArrayPut(array, i, &i, 0); } // Now read the elements of the array for (int i = VarArrayLowBound(array, 1); i <= VarArrayHighBound(array, 1); i++) { // Put the element I at index I if (VarArrayGet(array, &i, 0) != i) MessageDlg("Error! Invalid element found at current position!", mtError, TMsgDlgButtons() << mbOK, 0); } // Clear the variant array VarClear(array); }
Delphi Examples:
{ This example demonstrates the use of variant arrays. In this example a variant array is created, modified, populated and then freed. } procedure TForm1.Button1Click(Sender: TObject); var Arr: Variant; I: Integer; begin { Create a variant array of 10 elements, starting at 0 and ending at 9. The array contains elements of type integer } Arr := VarArrayCreate([0, 9], varInteger); { Increase the length of the variant array } VarArrayRedim(Arr, 49); MessageDlg('Variant array has ' + IntToStr(VarArrayDimCount(Arr)) + ' dimensions', mtInformation, [mbOK], 0); { Traverse the array from lower to higher bounds } for I := VarArrayLowBound(Arr, 1) to VarArrayHighBound(Arr, 1) do begin { Put the element I at index I} VarArrayPut(Arr, I, [I]); end; { Now read the elements of the array } for I := VarArrayLowBound(Arr, 1) to VarArrayHighBound(Arr, 1) do begin { Put the element I at index I} if VarArrayGet(Arr, [I]) <> I then MessageDlg('Error! Invalid element found at current position!', mtError, [mbOK], 0); end; { Clear the variant array } VarClear(Arr); end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|