В начало
Статьи
Библиотека
Разное

Вот здесь - новый сайт, заходите немедленно!

kift - Коллекция Интересных Фактов и Теорий

А тут можно поболтать и побухтеть, милости просим:

kift - неизданное

Самоучитель Visual Basic

6. Дизайн формы
7. Введение в базы данных. Программа-надстройка VB
8. Визуальное редактирование формы для управления данными
9. Программирование формы для управления данными
10. Обработка ошибок. Условные операторы
11. «Сборка» проекта
12.  Создание формы для вывода справки
13. Добавление окон-заметок. Наборы и циклы
14. Циклы VB
15. Основы отладки программ. Пользовательская процедура

5. События.
Обработка событий.

В этом разделе Вы познакомитесь с другим основополагающим понятием VB - событиями и получите представление об их использовании. Также Вы получите определение процедуры языка и начнете редактирование кода.

Наряду со свойствами события - одно из основных понятий языка VB.

  • События есть оповещения, посылаемые от объекта другим объектам и сообщающие им о том, что первый объект выполнил действие, изменил свойство и т.п.

  • Программы на VB строятся путем создания обработчиков событий, то есть, последовательности действий, которые следует совершить в ответ на то или иное событие.

Наиболее понятно будет изучить это на примере.

Убедитесь, что созданная Вами программа не содержит никаких обработчиков событий.

  • Загрузите VB.

  • Запустите вашу программу (если забыли – меню RunStart, а быстрее – [F5]).

  • Щелкните на созданной вами кнопке.

Как видите, ничего не случилось.

В самом деле, созданной Вами кнопке не назначено никакое действие!

Остановите программу (если забыли – меню RunEnd).

Создание обработчиков событий происходит в окне редактирования кода.

Перейти в него можно, если в окне Project Explorer выделить нужный объект (в данном случае - форму frmAbout) и нажать кнопку View Code вверху окна Project Explorer.

   

Другой способ перейти в окно редактирования кода мы сейчас испробуем.

  • Выполните double-click на созданной вами кнопке.

В среде VB откроется новое окно:

 
 

Это и есть окно редактирования кода. Как видите, в заголовке его указано имя проекта (Organizer) и модуля (frmAbout), к которому относится этот код. Вверху два списка, в левом – перечень объектов, относящихся к этому модулю (в нашем случае – сама форма и кнопка), а первым пунктом идет т. н. область объявлений (надпись (General) - Общая). В правом списке – перечень событий, относящихся к выбранному объекту и процедур модуля.

Процедура – элементарный участок программы, обладающий логической и функциональной завершенностью. Обработчик события - частный случай процедуры.

Далее на рисунке идет собственно окно редактирования кода. Разберем его по порядку.

  • Первая строка:

Option Explicit

Если у вас нет этой строки, внесите ее вручную.

Эта строка заставляет VB производить некоторые проверочные действия при работе с переменными, что уменьшает вероятность ошибок.

Чтобы VB автоматически вносил эту строку в создаваемый блок, сделайте следующее:

Выберите пункт меню ToolsOptions

  • В появившемся окне найдите флажок с надписью Require Variable Declaration (Обязательное Объявление Переменных).

  • Установите его (установить флажок – значит щелкнуть по нему, чтобы в «квадратике» появилась отметка, обычно – «птичка»).

  • Заодно сбросьте флажок с надписью Auto Syntax Check (Автоматическая Проверка Синтаксиса) (сбросить флажок – щелкнуть по нему, чтобы отметка в нем исчезла).

Это предотвратит слишком частое появление окошек-предупреждений об ошибках, которые вы будете допускать при работе (не обольщайтесь, обязательно будете!).

На остальных вкладках этого окна вы можете изменить многие другие настройки среды программирования VB.

  • Щелкните OK.

Далее в окне редактирования кода идут строки:

Private Sub cmdOK_Click()

End Sub

Это – заготовка процедуры (обработчика события). Рассмотрим ее детально.

  • Первая строка начинается со слов Private Sub. Sub – объявление процедуры (от англ. Subroutine – подпрограмма). Слово Private (Частная) обозначает, что обратиться к этой процедуре вы можете только внутри модуля, в котором эта процедура находится. Иными словами, эта процедура объявлена как частная (приватная).

  • Объявления процедур могут быть также общими (публичными, глобальными). Тогда вместо Private должно быть написано Public. К таким процедурам можно будет обращаться из других модулей, а в некоторых случаях – и из других проектов.

  • Дальше идет имя процедуры.

Имя процедуры должно быть уникальным для своей области видимости – то есть, если процедура объявлена как Private, то в этом модуле не должно быть процедур с таким именем. Если же объявление Public, то такого имени не должно быть во всем проекте.

  • В нашем случае имя процедуры cmdOK_Click. Это слово автоматически генерируется VB как имя обработчика события.

Вернитесь к окну редактирования кода. В левом списке выберите строку cmdOK.

  • А теперь откройте правый список.

В правом списке окна редактирования кода вы видите перечень обработчиков возможных событий объекта cmdOK (т.е. – кнопки с именем cmdOK). Строка со словом Click (Щелчок) выделена жирным – этот обработчик уже вами задействован (хотя в нем еще нет кода, но заготовка его есть).

  • В левом списке выберите frmAbout.

  • Откройте правый список.

Как видите, перечень изменился. Объекты-формы обладают другими предопределенными обработчиками событий, нежели кнопки. Обратите внимание, что в окне редактирования кода появилась заготовка другого обработчика события, а именно Form_Load. Дело в том, что существуют события, применимые к объектам как правило, и их обработчики используются наиболее часто. Для кнопок это событиеClick (Щелчок), а для форм –Load(Загрузка).

Как вы уже, возможно, заметили, имя обработчика события формируется так:

<имя_объекта>_<событие>

То есть, сначала идет имя объекта, к которому относится это событие, а затем имя самого события. Соединяются они знаком подчеркивания.

Скобки после имени процедуры обязательны!

Затем следует строка End Sub (Конец Проц[едуры]). Это – обязательная строка – признак конца процедуры.

Между строкой с именем процедуры и  строкой-признаком конца вы можете помещать код, который будет отвечать за действия, происходящие в ответ на событие.

  • Внесите строку

unload me

(маленькими буквами).

  • Нажмите [Enter].

Обратите внимание: написание строки изменилось, теперь она выглядит так:

Unload Me

После нажатия клавиши [Enter] VB автоматически проверил синтаксис строки, то есть, соответствует ли строка правилам написания языка. Так как код был внесен верно, язык привел его к стандартному виду. Это – один из распространенных способов проверки синтаксиса, т.к. неверно написанная строка не будет преобразована в стандартное написание.

  • Ваш код должен выглядеть так:

Private Sub cmdOK_Click()
	Unload Me
End Sub

Теперь разберемся, что же мы написали.

Слово Unload (Выгрузить) – одно из предопределенных ключевых слов VB, оно приказывает языку выгрузить объект (т.е. – уничтожить его). При этом также происходит освобождение ресурсов машины. Слово Me (Меня) обозначает объект, в котором это слово встречается (в данном случае Me – синоним слова frmAbout, и вы вполне могли бы написать

Unload frmAbout.

Но, согласитесь, проще написать Me и не думать, о каком объекте идет речь).

Слово Me в нашем коде выступает как параметр, т.е. как уточняющий фактор, приказывающий языку произвести действие Unload именно с объектом Me.

Выделите строку Unload Me.

  • Для этого поместите курсор мыши в самое начало выделяемой строки, он должен изменить форму – вместо стрелки «вверх-влево» должна появиться стрелка «вверх-вправо».

  • Щелкните один раз.

Строка должна изменить цвет:

   

Способы редактирования кода VB во многом схожи с приемами MS Word.

  • Теперь нажмите [Delete].

Строка исчезнет.

  • Введите начало слова Unload:

и

  • и нажмите одновременно [Ctrl] + [Space].

Вот что вы увидите:

 
 

Это – очень полезная функция среды программирования, называемая автодополнением. В данном случае язык не может однозначно распознать слово и предлагает вам выбор из списка. Если язык распознает введенные символы однозначно, он дополнит слово без запросов (естественно, при нажатии [Ctrl] + [Space]). Выбор производится мышью или курсорными клавишами, выбранное слово вносится в текст нажатием [Enter].

  • Введите полностью слово unload.

  • Нажмите [Space].

Наблюдайте появление подсказки:

   

Как видно на рисунке, выводится название слова и сведения о параметрах – имя и тип (о параметрах будет подробно рассказано позже).

  • Восстановите строку Unload Me.

Код опять имеет вид:

Private Sub cmdOK_Click()
	Unload Me
End Sub

На этом можно было бы остановиться, но…

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

  • Если код будет более-менее сложным, необходимо дополнять код пояснениями (комментариями).

Комментарий – любая строка, начинающаяся с признака комментария.

  • В VB признак комментария – (апостроф). Таким образом, любая строка, начинающаяся с апострофа, будет комментарием. Язык эту строку проигнорирует и в окончательную программу она не войдет. Комментарии предназначены, как ясно из названия, для внесения пояснений в текст программы.

Комментарии в программе – признак профессионализма программиста. Их наличие ОБЯЗАТЕЛЬНО!

Запомните: минуты, затраченные на написание комментариев, сэкономят Вам часы и дни впоследствии!

Написание комментариев будет объяснено лишь один раз, далее их содержание – на Ваше усмотрение.

Придерживайтесь следующего:

  • во-первых, комментарии должны быть ПОНЯТНЫ не только Вам, но и любому человеку, который теоретически может работать с Вашей программой,

  • во-вторых, комментарии должны быть.

Добавьте в код процедуры стр оки так, чтобы код приобрел вид:

Private Sub cmdOK_Click()
‘действия при нажатии кнопки OK
	‘выгрузка формы
	Unload Me
End Sub

Как видите, строки комментариев приобрели другой вид, нежели строки кода (изменили цвет).

Еще одно немаловажное назначение комментариев – отладка программы. Вы можете превращать в комментарии любые строки, помещая в начало строки апостроф (‘), исключая их из программы и проверяя таким образом, где находится ошибка.

Запустите программу.

  • А теперь щелкните на появившейся форме кнопку OK.

Форма исчезла!

Итак, поздравляем Вас с написанием первой настоящей программы!

Первые шаги в программировании на VB Вами сделаны успешно!

Вопросы

  1. Что такое событие? Для чего оно применяется?

  2. Из каких частей состоит типичный обработчик события?

  3. Чем отличается объявление процедуры Private от объявления Public?

  4. Как строится имя обработчика события?

  5. Для чего нужны комментарии?

Задания

  1. Законспектируйте содержимое этого раздела.

  2. Создайте собственный обработчик события, заставив форму выгружаться в ответ на щелчок на форме (не на кнопке). Подсказка – используйте событие Form_Click. В дальнейшем этот учебный обработчик нам не понадобится, поэтому после успешного выполнения упражнения  удалите его.

Примерно здесь Список возможных значений Подсказка синтаксиса
Hosted by uCoz