Процедура SetLength – изменяет размер строки или размер динамического массива

Процедура SetLength в Delphi изменяет размер строки или размер динамического массива.

Процедура SetLength: Делаем строку меньше или длиннее

var
  myString : string;
  onPos    : Integer;

begin
  // Присваиваем моей строке известную фразу
  myString := 'The cat sat on the mat';

  // Показ этого значения
  ShowMessage('"'+myString+'"');

  // Теперь делаем строку длиннее
  SetLength(myString, 25);

  // Показ снова этого значения
  // Обратите внимание, что строка закончена преждевременно
  // Это потому что дополнительные символы не инициализированы
  ShowMessage('"'+myString+'"');

  // Теперь делаем строку короче - прерывают перед 'sat'
  onPos := AnsiPos('sat', myString);
  SetLength(myString, onPos-1);

  // Показ этой строки снова
  // Теперь строка полностью инициализирована
  ShowMessage('"'+myString+'"');
end;

Процедура SetLength: Установка длины одномерных и многомерных массивов

var
  singleArray : array of string;
  multiArray  : array of array of Word;
  i, j : Integer;

begin
  // Установливаем длину одномерного массива
  SetLength(singleArray, 4);

  // Теперь заполняем : обратите внимание, что динамические массивы начинаются с 0
  ShowMessage('Одномерный массив :');
  for i := 0 to 3 do
  begin
    singleArray[i] := 'String '+IntToStr(i);
    ShowMessage('Элемент '+IntToStr(i)+' = '+singleArray[i]);
  end;

  // Устанавливаем длину многомерного массива
  SetLength(multiArray, 2, 3);

  // Теперь заполняем его
  ShowMessage('Многомерный массив :');
  for i := 0 to 1 do
    for j := 0 to 2 do
    begin
      multiArray[i,j] := i + j;
      ShowMessage('Элемент '+IntToStr(i)+','+IntToStr(j)+' = '+
                  IntToStr(multiArray[i,j]));
    end;
end;

Main Menu