Концентрация на объекте

А если нужно выполнить десять обращений к различным свойствам или мето­дам одного и того же объекта? Каждый раз писать одно и то же имя? Да! Но есть способ лучше — оператор with. Он выглядит следующим образом: 

with имя_объекта do begin

код end;

 

Теперь все методы и свойства, которые находятся между begin и end, компиля­тор будет сначала искать у объекта имя_объекта, и если не найдет, то тогда уже продолжает поиск у того объекта, внутри метода которого написан код.

Вспомним пример из листинга 10.21, когда мы работали с реестром. В том при­мере создавался экземпляр класса TReglniFile, а потом вызывались его методы и свойства. А теперь сравните тот код со следующим вариантом:

 

Reg:=TRegIniFile.Create;

with Reg do begin

RootKey:=HKEY_LOCAL_MACHINE;

OpenKey('SYSTEM', true);

OpenKey('CurrentControlSet', true);

Free; end;

 

В этом примере после создания объекта Reg класса TReglniFile мы начинаем блок with, внутри которого все методы этого объекта можно писать в сокращенном варианте, без добавления Reg и точки в начале.

dle

Помоги проекту! Расскажи друзьям об этом сайте: