Шаг 73 - Инструкция With

Выполняет последовательность инструкций над одиночным объектом или определяемым пользователем типом данных.

With объект
[инструкции]
End With

Параметры
объект
Обязательный. Имя объекта или определяемого пользователем типа.
инструкции
Необязательный. Одна или несколько инструкций, выполняемых над объектом.

Замечания
Инструкция With позволяет выполнить последовательность инструкций над указанным объектом, не повторяя задание имени объекта. Например, если имеется несколько свойств , которые необходимо изменить для одиночного объекта, то удобнее поместить инструкции присвоения свойств внутрь управляющей структуры With, указав ссылку на объект один раз, вместо того, чтобы ссылаться на объект при каждом присвоении его свойств. Следующий пример демонстрирует использование инструкции With для присвоения значений нескольким свойствам одного объекта.

With MyLabel
	.Height = 2000
	.Width = 2000
	.Caption = "Объект MyLabel"
End With

После входа в блок With значение аргумента объект изменить невозможно. В результате, невозможно использование одной инструкции With для воздействия на различные объекты.
Допускается создание вложенных конструкций With внутри другого. Однако, поскольку ссылки на объекты внешних блоков With перекрываются во внутренних блоках, необходимо во внутренних блоках With задавать полные ссылки на любой компонент объекта из внешнего блока With.
Нельзя выполнять переходы внутрь или из блоков With. Если не выполнены инструкции With или End With, возможно возникновение ошибок или непредсказуемое поведение объектов.

Пример
В данном примере инструкция With используется для выполнения набора инструкций над одним объектом. Объект MyObject и его свойства используются исключительно в иллюстративных целях.

With MyObject
	.Height = 100			' Эквивалентно MyObject.Height = 100.
	.Caption = "Привет"		' Эквивалентно MyObject.Caption = "Привет".
	With .Font
		.Color = Red		' Эквивалентно MyObject.Font.Color = Red.
		.Bold = True		' Эквивалентно MyObject.Font.Bold = True.
	End With
End With

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 16.02.2002