Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Ключевые слова Public и Private






Наверное, вы обратили внимание на ключевые слова Private или Public, которые встречались при работе с программными модулями в предыдущих уроках и примерах. Эти ключевые слова определяют область видимости процедуры. Ключевое слово Private делает процедуру доступной только на уровне модуля — это означает, что работать с ней могут лишь объекты, находящиеся в тех же форме или модуле. Процедуры и функции, объявленные с ключевым словом Public, доступны на уровне всего проекта, то есть имеют глобальную область видимости. Области видимости оказывают значительное влияние на строение и функциональные возможности ваших программ. Сейчас мы разберемся, почему и как это происходит.

 

Закрытые процедуры (Private)

Программные модули состоят из процедур, обеспечивающих работу форм и находящихся на них элементов. В процедурах событий для форм из предыдущих примеров часто встречалось ключевое слово Private, находящееся перед ключевым словом Sub. Необязательное ключевое слово Private описывает процедуру, доступную лишь для других процедур из тех формы или модуля, где она объявлена. Такие процедуры называются закрытыми, потому что их нельзя вызвать вне этой формы.

Если открыть проект примера из каталога \MSN\98vs\1033\Samples\VB98\Controls, в окне проекта вы увидите семь форм (рис. 4.9). Каждый файл формы описывает форму и элементы, находящиеся на ней.

 

Рис. 4.9. Семь форм в окне проекта

 

Файлы форм также содержат тексты процедур событий, связанных с формой; они называются кодом формы (code behind form — СВF). Код формы называется модулем формы. Модуль представляет собой самостоятельный набор процедур, которые могут вызываться из процедур событий данной формы или из любой другой процедуры того же модуля.

Все процедуры событий начинаются с ключевого слова Private. Оно означает, что процедура не может быть вызвана за пределами модуля формы. Ее область видимости ограничивается модулем, и вне формы она недоступна — другими словами,

она является локальной, или закрытой, процедурой. По умолчанию все процедуры событий объявляются с ключевым словом Private. Тем не менее вы можете включить в форму собственные процедуры и сделать их доступными на уровне приложения (то есть открытыми, или глобальными), воспользовавшись ключевым словом Public. Такие процедуры можно вызывать из любой другой формы (или стандартного модуля) проекта. Если ключевое слово Private или Public не указано, по умолчанию процедура считается открытой.

 

Открытые процедуры (Public)

В некоторых ситуациях процедура должна быть доступна за пределами формы - допустим, вы хотите добавить кнопки на форму панели инструментов вашего собственного приложения. Один из возможных вариантов — поместить процедуру в программный модуль, в котором любые форма, элемент или процедура смогут получить к ней доступ. Другой вариант — оставить процедуру в том модуле, которому она принадлежит, и указать ключевое слово Public перед ее объявлением. В этом случае процедура также будет доступна для других компонентов вашего приложения.

Вы можете выполнить любую открытую (или закрытую) процедуру формы, включив ее имя в другую процедуру той же формы. Например, если у вас есть процедура с именем Test, она выполняется следующей строкой:

 

Test

 

Строго говоря, сказанное относится только к процедурам Sub; функции вызываются несколько иначе. Кроме того, существуют процедуры третьего типа — процедуры свойств. О них речь пойдет в разделе «Работа с модулями классов» этого урока.

 

ПРИМЕЧАНИЕ Чтобы вызвать открытую процедуру, находящуюся в модуле формы, за пределами формы, следует указать имя формы в виде префикса. Например, чтобы вызвать открытую процедуру типа Sub с именем test, принадлежащую форме frmForm1, следует ввести строку frmForm1.test.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.