Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ПиОА[1].doc
Скачиваний:
20
Добавлен:
30.08.2019
Размер:
2.53 Mб
Скачать

13.2. Как работает событийное приложение

Событие – это действие, распознаваемое формой или элементом управления. Событийные приложения выполняют код Basic в ответ на событие. Каждая форма и элемент управления имеют заранее определенный набор событий. Если происходит одно из этих событий и есть код в связанной с событием процедуре его обработки, активизируется выполнение этого кода. Хотя объекты автоматически распознают заранее определенный набор событий, только программист решает, надо ли отвечать на отдельное событие и как именно. Каждому событию соответствует раздел кода – процедура обработки события. Если необходимо, чтобы элемент управления реагировал на событие, следует написать соответствующий код в процедуре обработки события.

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

Вот типичная последовательность событий в приложении:

1. После запуска приложения загружается и отображается форма.

2. Форма (элемент управления) получает информацию о событии. Событие может быть вызвано пользователем (нажатие клавиши на клавиатуре), системой (событие, связанное с таймером) или косвенно кодом приложения (событие Load, когда код загружает форму).

3. Если существует код в соответствующей процедуре обработки события, он выполняется.

4. Приложение ожидает следующего события.

Встречаются события, связанные с другими событиями. Например, когда происходит событие DblCiick, происходят также события MouseDown, MouseUp и Click.

13.3. До начала кодирования

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

К

Структура проекта VCR в Object Browser

од приложения имеет иерархическую структуру. Типичное приложение состоит из одного или более модулей: модуль формы для каждой формы приложения, необязательные стандартные модули для совместно используемого кода и необязательные модули класса. Каждый модуль содержит одну или более процедур, которые содержат код: процедуры обработки событий, процедуры Sub и Function и процедуры Property. Принадлежность процедур модулям зависит частично от типа создаваемого приложения. Так как в основе VB лежат объекты, это помогает думать о приложении в терминах объектов, которые его составляют.

Н

Главная форма приложения VCR.

апример, дизайн образца приложения Vcr.vbp, основан на объектах, которые представляют видеомагнитофон и телевизор. Приложение VCR (Видеомагнитофон) состоит из двух модулей форм, стандартного модуля и двух модулей классов. С помощью Object Browser (Просмотр объектов) можно исследовать структуру проекта (рис.). Главная форма приложения VCR (frmVCR) – визуальное представление комбинации видеомагнитофона и экрана телевизора (рис.). Она составлена из нескольких объектов, которые моделируют объекты реального мира. Группа кнопок управления (cmdPlay, cmdRecord и т. д.) имитирует кнопки управления магнитофоном. Программное обеспечение видеомагнитофона содержит также часы (IblTime), индикатор канала (IblChannel), функциональные индикаторы (shpPlay, shpRecord и т. д.) и экран для вывода графических данных (picTV). Процедуры обработки событий для всех этих объектов содержатся в модуле формы Vcr.frm. Во многих случаях существуют процедуры, выполняемые без завершения, которые используются совместно более чем одним объектом. Например, когда кнопки Play, Rewind или Record нажаты, кнопки Pause и Stop должны быть разрешены (их можно нажать в любой момент). Вместо того чтобы дублировать этот код в каждой процедуре обработки события Click каждой кнопки, лучше создать совместно используемую процедуру Sub, которая может быть вызвана любой кнопкой. Если потребуется в будущем модернизировать эти программы, все модификации будут произведены в одном месте. Эта и другие совместно используемые процедуры, содержатся в стандартном модуле Vcr.bas. Некоторые части видеомагнитофона невидимы, например, лентопротяжный механизм или логическая схема записи телевизионных программ. Также и некоторые функции программного обеспечения видеомагнитофона не имеют визуального представления. Все это осуществлено в виде двух модулей классов: Recorder.cis и Таре.els. Код для инициирования процесса записи содержится в модуле cisRecorder; код, задающий направление движения и скорость ленты, содержится в модуле cisTape. Классы, определенные в этих модулях, не имеют прямых ссылок ни на один из объектов формы. Так как они являются независимыми модулями кода, их можно было бы использовать без изменений для построения аудиомагнитофона.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]