12. Записи

Запись - это структура данных, состоящая из фиксированного количества компонентов, называемых полями записи. В отличие от массива компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются. Пример использования записи:

type
  TMyPoint = record
    X, Y: Integer;
  end;
 
  TMyData = record
    a, b: Integer;
    Arr: array [1..5] of String;
    Ch: Char;
    S: String;
    Pnt: TMyPoint;
  end;
 
var
  MyData: TMyData;
 
procedure Form_Create;
begin
  MyData.a := 2;
  MyData.b := 10;
  MyData.Arr[1] := 'Hello';
  MyData.S := 'World';
  MyData.Pnt.X := 10;
end;

Запись объявляется в разделе объявления пользовательских типов type. Поля записи могут быть произвольного типа, в том числе другими записями. Обращение к полю записи осуществляется через точку. Ключевое слово with упрощает доступ к полям записи:

with MyData do
  a := 2;
  b := 10;
  Arr[1] := 'Hello';
  S := 'World';
  Pnt.X := 10;
  // вложенный with
  with Pnt do Y := 8;
end;
// Так тоже можно
with MyData.Pnt do
  X := 5;

К сожалению, в текущей реализации движка есть ошибка. Если в запись добавить поле перечисляемого типа, то использование переменных этого типа приведет к неправильной работе скрипта. Поэтому не используйте перечисляемые типы в записях.