ComVariantArray

Représente un tableau de variant COM/OLE

Ces tableaux sont multi-dimensionnels.
Les dimensions vont de 1 à N.
Les valeurs limites des indices (Low/High) ne commencent pas forcément à 0 et peuvent varier par dimension.

Les méthodes suivantes sont supportées:

  • DimCount : nombre de dimensions du tableau.
  • Low([d: Integer = 1]) : limite d'index basse de la dimension d.
  • High([d: Integer = 1]) : limite d'index haute de la dimension d.
  • Length([d: Integer = 1]) : taille de dimension d (high-low+1).

On accède à un élément en mettant ses indices (dans chaque dimension) entre crochets. Ex : MonTableau[1, 2].

Note: l'énumération par for..in est supportée uniquement pour les tableaux mono-dimensionnels

Exemples

 
uses COM, DataGrid, Interactive;

// Recopie dans une DataGrid de l'étendue "A1:F10"
// de la feuille "Feuil1" du classeur Excel actuellement ouvert
var xls : ComVariant = GetActiveOleObject('Excel.Application');
var rng : ComVariantArray = xls.ActiveWorkBook.Worksheets("Feuil1").Range("A1:F10").Value;

// Création de la DataGrid et de ses colonnes
var dg:=new TDataGrid;
for var j:=1 to rng.Length(2) do
   dg.AddColumn(Chr(64+j), cssNone);

// Remplissage de la DataGrid avec les valeurs des cellules Excel
for var i:=rng.Low(1) to rng.High(1) do begin
   dg.Append;
   var k:=0;
   for var j:=rng.Low(2) to rng.High(2) do begin
      dg.CellData[k]:=rng[i, j];
      Inc(k);
   end;
end;

// Affichage de la DataGrid
HtmlBox('<html><body><table border="1">'+dg.AsHTMLRows, 800, 600);