Записи
Запись (аналогичная структуре на некоторых языках) представляет собой гетерогенный набор элементов. Каждый элемент называется полем. Объявление типа записи указывает имя и тип для каждого поля. Синтаксис объявления типа записи
type recordTypeName = record fieldList1 : type1; ... fieldListn : typen; end;
где recordTypeName действительный идентификатор, каждый тип обозначает тип, и каждый fieldList является допустимым идентификатором или списком идентификаторов с разделителями-запятыми. Объем идентификатора поля ограничен записью, в которой он встречается, поэтому вам не нужно беспокоиться об именовании конфликтов между идентификаторами полей и другими переменными.
Например, следующее объявление создает тип записи, называемый 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; // Эта конструкция скопирует значения всех полей