logo search
Лекции_ПиОА[1]

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 и т. д. Если в приложении несколько форм, следует дать им имеющие смысл названия во избежание путаницы при написании и редактировании кода.