RAD Studio VCL Reference
|
Creates a variant array.
VarArrayCreate creates a variant array with the bounds given by Bounds and the element type given by VarType.
The Bounds parameter must contain an even number of values, where each pair of values specifies the upper and lower bounds of one dimension of the array.
If VarArrayCreate is unable to create the array, an EVariantArrayCreateError is raised.
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!
|