Теперь остановимся на вопросе об областях видимости элементов программы —
констант, переменных, функций и процедур, т.е. о связи места их объявления в
программе и места их использования. Частично этот вопрос мы уже затрагивали в
предыдущем разделе, не упоминая о самом понятии область видимости.
Видимость отдельных элементов модуля, описанного ранее, поясняется подробными
комментариями в тексте этого модуля. Поэтому ограничимся только некоторым
подведением итогов.
> Элементы, объявленные в разделе interface модуля вне описания типа,
видимы и доступны внутри данного модуля и из внешних модулей. В рассмотренном
примере это относится к переменной Сh2 и процедуре F3.
> Элементы, объявленные в разделе implementation модуля, видимы и
доступны внутри данного модуля, но не доступны из внешних модулей. В
рассмотренном примере это относится к переменной Ch3 и процедуре F4.
> Элементы, объявленные в классе в разделе private, видимы и доступны
только внутри данного модуля. При этом из процедур, объявленных внутри класса, к
ним можно обращаться непосредственно по имени, а из других процедур — только со
ссылкой на объект данного класса. В рассмотренном примере это от носится к
процедуре F1. Если в модуле описано несколько классов, то объекты этих классов
взаимно видят элементы, описанные в их разделах private.
> Элементы, объявленные в классе в разделе public, видимы и доступны для
объектов любых классов и для других модулей. При этом из объектов того же класса
к ним можно обращаться непосредственно по имени, а из других объектов и процедур
— только со ссылкой на объект данного класса. В рассмотренном примере это
относится к переменной Сh1 и процедуре F2.
> В классах, помимо обсуждавшихся ранее, могут быть еще разделы protected
— защищенные. Элементы, объявленные в классе в разделе protected, видимы и
доступны для любых объектов внутри данного модуля, а также для объектов классов
— наследников данного класса в других модулях. Объекты из других модулей, классы
которых не являются наследниками данного класса, защищенных элементов не видят.
> Элементы, объявленные внутри другой процедуры (в рассмотренном примере это
переменная Сh4 и процедура F5, описанные внутри процедуры TForm1.Button1CIick),
являются локальными, т.е. они видимы и доступны только внутри данной процедуры
или внутри процедур, вложенных в данную. При этом время жизни переменных,
объявленных внутри процедуры, определяется временем выполнения данной процедуры.
Так переменная Ch4 в нашем примере создается в момент вызова процедуры
TForm1.Button1Click и уничтожается при завершении работы этой процедуры. Она
видима в самой процедуре TForm1.Button1Click и ее может видеть процедура F5.
Вложенная процедура F5 доступна только из процедуры TForm1.Button1Click, в
которой она описана.
Если Вам что-то осталось непонятным, оставьте на потом.
Всё, что представлено в рассылке,
копировать запрещено! Сайт рассылки
http://mydelphi7.narod.ru тут
архив.