Ваша буферная переменная размещена в стеке, и максимальный размер стека по умолчанию, используемый компилятором Delphi, составляет 1 МБ.Поэтому решение состоит в том, чтобы установить более высокий лимит с помощью параметров проекта или следующей глобальной директивы:
{$MAXSTACKSIZE 4194304} // eg. now maximum is 4 MiB
Другой способ - использовать кучу вместо стека, любую из динамически выделяемой памяти, в вашем случае, вероятно, лучшее решение будетбыть динамическим массивом.
Примечание по производительности: стек быстрее, чем куча.