Like other scripting languages, DelphiScript supports one- and
multi-dimensional arrays. Arrays can be defined statically in the var section or
created dynamically using the CreateVariantArray, CreateVariantArray2 or CreateVariantArray3 functions. Arrays can be passed to any routine as parameters.
For example:
DelphiScript
procedure Test (p: OleVariant); // p is an array
begin
Log.Message(p[0,0]);
Log.Message(p[1,0]);
Log.Message(p[0,1]);
Log.Message(p[1,1]);
end;
procedure Test1;
var
p : array [0..1, 0..1];
begin
// Initializes array elements
p[0,0] := '00000';
p[1,0] := '11111';
p[0,1] := 'aaaaa';
p[1,1] := 'bbbbb';
Test(p); // passes the array as parameter
end;
Note that arrays in DelphiScript cannot be initialized statically. For instance, the following code raises an error:
DelphiScript
var
I : array[0..1] of Integer = (3,4) // <-- Error!!!
To solve the problem, initialize the array elements in your code. There are several ways to do this:
- Initializing each element individually:
DelphiScript
var a : array [0..3] of string;
begin
a[0] := 'Element 0';
a[1] := 'Element 1';
a[2] := 'Element 2';
a[3] := 'Element 3';
...
end; - Initializing elements in a loop:
DelphiScript
var a : array [0..3] of string;
begin
for i := 0 to 3 do
a[i] := 'Element ' + IntToStr(i);
...
end; - Initializing all elements at once:
DelphiScript
var a : array [0..3] of string;
begin
a := ['Element 0', 'Element 1', 'Element 2', 'Element 3'];
...
end;
