Оперирование несколькими полями

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

Обратиться к полю записи можно следующим способом:

<имя_записи>.<имя_поля>

Например:

month:= my_birthday.month +1;

Как уже было упомянуто, коллизий между переменной с именем month и полем записи my_birthday.month не возникает.

Доступ к полю двумерной таблицы осуществляется аналогичным образом (жирные скобки являются обязательным элементом синтаксиса):

<имя_таблицы>[<индекс>].<имя_поля>

Эту запись можно трактовать так:

(<имя_таблицы>[<индекс>]).<имя_поля>

Например:

birthdays[mother].day := 9;

Если программе предстоит несколько раз подряд обращаться к полям одной и той же записи, может оказаться неудобным записывать это обращение полностью:

my_birthday.day:= 17;my_birthday.month:= 3;my_birthday.year:= 2004;

Для сокращения таких участков служит оператор with, позволяющий обращаться к полям, не указывая каждый раз имя всей записи:

with <имя_записи> do begin <операторы> {имена полей здесь используются как <имя_поля>, а не как <имя_записи>.<имя_поля>} end;

Например:

with my_birthday do begin day:= 17; month:= 3; year:= 2004; end;

Замечание. Для того чтобы внутри оператора with можно было обратиться не к полю записи, а к глобальной переменной с таким же именем, перед этой переменной нужно указать (через точку) имя программы: <имя_программы>.<имя_переменной>.

Например:

with my_birthday do begin day:= 17; month:= 3; {поле записи birthday.month} year:= 2004; programma.month:= 5; {глобальная переменная month} end;