Оперирование несколькими полями
Доступ к полям
Обратиться к полю записи можно следующим способом:
<имя_записи>.<имя_поля>Например:
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;