Записи

Запись (аналогичная структуре на некоторых языках) представляет собой гетерогенный набор элементов. Каждый элемент называется полем. Объявление типа записи указывает имя и тип для каждого поля. Синтаксис объявления типа записи

type recordTypeName = record
  fieldList1 : type1;
  ...
  fieldListn : typen;
end;

где recordTypeName действительный идентификатор, каждый тип обозначает тип, и каждый fieldList является допустимым идентификатором или списком идентификаторов с разделителями-запятыми. Объем идентификатора поля ограничен записью, в которой он встречается, поэтому вам не нужно беспокоиться об именовании конфликтов между идентификаторами полей и другими переменными.

  Примечание : В mikroPascal PRO для ARM вы не можете использовать конструкцию записи непосредственно в объявлениях переменных, то есть без типа.

Например, следующее объявление создает тип записи, называемый TDot:

type
  TDot = record
    x, y : real;
end;

Каждый TDT содержит два поля: координаты x и y. Память выделяется при объявлении записи, например:

var m, n: TDot;

Это объявление переменной создает два экземпляра TDot, называемых m и n.

Поле может иметь ранее определенный тип записи. Например:

// Структура, определяющая окружность:
type
  TCircle = record
    radius : real;
    center : TDot;
end;

Доступ к полям

Вы можете получить доступ к полям записи с помощью точки (.) В качестве прямого полевого селектора. Если мы объявили переменные circle1 и circle2 ранее определенного типа TCircle:

var circle1, circle2 : TCircle;

мы могли бы получить доступ к их отдельным полям следующим образом:

circle1.radius := 3.7;
circle1.center.x := 0;
circle1.center.y := 0;

Доступ к полям возможен также с помощью оператора with.

Вы также можете назначать назначения между сложными переменными, если они одного типа:

circle2 := circle1; // Эта конструкция скопирует значения всех полей