Не знаю, чи напишу я щось нове, але я завжди роблю так:
procedure CreateArray;
var i : Integer;
Arr: Array of Array of Integer;
begin
SetLength(Arr, M);
For i:=Low(Arr) to High(Arr) do SetLength(Arr[i], N);
end;
Іншого методу я не знаю, до того ж пролистав свої книжки і там простіше методу нема.