De mémoire tu as 2 possibilités :
Par exemple pour un tableau 2d "rectangulaire" :
var
Tab: array of array of Integer;
...
SetLength(Tab, 10, 20);
On accède aux elément avec
Tab[0, 0] ... Tab[9, 19] ou bien Tab[0][0] ... Tab[9][19]
Tab.Length renvoie 10
Tab[0].Length renvoie 20
On peut aussi faire des tableaux non rectangulaire par exemple :
SetLength(Tab, 10);
for I := 0 to Tab.Length - 1 do
SetLength(Tab[I], I + 1);
Crééra un tableau :
Tab[0, 0]
Tab[1, 0] Tab[1, 1]
...
Tab[9, 0] ... Tab[9, 9]