назад | содержание | вперед
Глава 4 Управление проектом
Основным понятием для Visual Basic 6 при разработке приложении является проект. Все приложения создаются как проекты и хранятся в файлах с расширением vbp. Создавая любое приложение, даже самое простое, вы всегда работаете с проектом Visual Basic.
В Visual Basic проект — это контейнер, в котором находятся все требуемые формы приложения и другие визуальные элементы вместе с программным кодом. Таким образом можно сказать, что проект является средством интеграции визуальных и программных компонентов приложения. Кроме этого, к проекту можно подключить библиотеки DLL, компоненты сторонних разработчиков с помощью окон ссылок References (Ссылки) и компонентов Components (Компоненты).
В Visual Basic 6 вы можете работать с группой проектов, что расширяет возможности работы с ними. Группа проектов — это файл с расширением vbg, аналог проекта проектов, в котором собраны вместе несколько проектов. Это полезное свойство Visual Basic 6 на практике может служить для разделения проекта на отдельные варианты. Например, один проект группы можно использовать как основной рабочий проект, поставляемый пользователям. Для этого проекта создается исполняемый файл очередной версии приложения. Второй проект может быть предназначен для тестирования и отладки приложения. После накопления изменений в приложении, предназначенном для отладки, они переносятся в основной проект, поставляемый заказчику. Третий проект группы может служить для экспериментов по повышению производительности приложения и так далее. В слаженной группе программистов работу над каждым из таких проектов вполне реально разделить между несколькими разработчиками для повышения эффективности работы над проектом. Однако в этой главе все внимание будет уделено проекту, а о группе проектов лишь скажем, что такая возможность в Visual Basic есть и ее можно использовать.
Все элементы проекта — формы, диалоговые окна, программные модули, относящиеся к одному проекту, рекомендуется хранить в отдельной папке, созданной специально для этого проекта. Это самый простой, но не самый лучший способ организации работы с проектом. В Visual Basic 6 есть более сложные, но надежные и правильно организованные способы работы с проектом. В том числе и инструменты для групповой работы над сложными проектами. Более современный и правильный подход к хранению и организации работы с проектами состоит в использовании специальных инструментальных средств управления проектами, например, SourceSafe. Эти средства обеспечивают надежное хранение проектов в специальном хранилище проектов, называемым репозитарием, возможность групповой работы над одним проектом, автоматически поддерживают актуальность версий проекта и его элементов, исключают возможность дублирования работы в группе программистов.
Проект обеспечивает взаимодействие всех элементов приложения и поэтому, как всякий организованный определенным образом объект, имеет свою внутреннюю структуру. Ниже приведен пример структуры проекта:
Project: MyProject
Module: MyMain
Form: Customer
Control LabelCustomerName
Control LabelOutstandingBalance
Control TextCustomerName
Control TextOutstandingBalance
Form: Invoice
Control LabelCustomerName
Control LabelInvoiceDate
Control LabelPastDueCharges
Control LabelCurrentCharges
Control LabelTotalCharges
Control TextCustomerName
Control TextInvoiceDate
Control TeApastDueCharges
Control TextCurrentCharges
Control TextTotalCharges
Control FrameInvoiceCopies
Control: CheckboxAccountSupervisor
Control: CheckboxRegionalCreditDept
Control: CheckboxCollectionsDept
Control: CommandPrintInvoice
Control: CommandSaveWithoutPrint
Control: CommandCancelInvoice
В данном случае проект состоит из программного модуля и двух форм с элементами управления. Элементы управления, в соответствии со структурой проекта, тоже могут быть вложенными.
Из текста примера хорошо видно, что структура проекта представляет собой иерархическое дерево, корнем которого является сам проект. Ветвями дерева являются такие элементы проекта, как формы, диалоговые окна, программные модули и другие файлы. Листьями, входящими в ветви, являются элементы управления и другие объекты форм и элементов проекта уровня форм.
Для работы со структурой проекта в среде проектирования Visual Basic 6 имеются специальные инструментальные средства, в которых она наглядно представлена: проводник проекта и браузер объектов. Структура проекта содержит ссылки на его элементы, а именно:
При работе с проектом удобнее всего работать в проводнике проекта. В этом окне наглядно видна структура проекта со всеми элементами разрабатываемого приложения (рис. 4.1).
Рис. 4.1. Проводник проекта
В окне проводника проекта можно выполнять все действия, необходимые при проектировании приложении с файлами элементов проекта:
Чтобы добавить в проект форму, модуль, файл и другие элементы, необходимо выполнить следующие действия:
Для исключения элемента из проекта достаточно просто выделить в проводнике требуемый элемент и выполнить команду Remove (Исключить) меню Project (Проект) или выбрать одноименную команду из контекстною меню, появляющегося при установке курсора на данном элементе и нажатии правой кнопки мыши.
Для редактирования элемента проекта необходимо выделить его в окне проводника и выполнить команду Object (Объект) меню View (Вид) или нажать правую кнопку мыши и выбрать из появившегося контекстного меню команду View Object. Но самый простой способ — дважды щелкнуть на объекте. При этом будет вызван соответствующий инструмент среды разработки с выбранным элементом для внесения изменений. Для форм и диалоговых окон это конструктор форм, для программных модулей — редактор. Для редактирования программного кода визуальных объектов можно использовать команду Code (Код) из меню View (Вид) или команду View Code контекстного меню.
Использование браузера объектов для просмотра структуры проекта
В Visual Basic 6 проводник проекта не является единственным средством работы со структурой проекта. Удобным дополнительным инструментом является Object Browser (Браузер объектов). Для просмотра структуры проекта в окне браузера объектов из списка, расположенного в верхнем левом углу, выберите имя открытого проекта (рис. 4.2).
Рис. 4.2. Браузер проекта
Браузер объектов предоставляет доступ к свойствам, методам и событиям объектов, входящих в проект. В этом окне можно выполнять текстовый поиск заданного значения в пределах всего проекта.
Для запуска браузера можно воспользоваться одним из следующих способов:
Таблица 4.1. Элементы управления object Browser
Элемент |
Назначение |
Project/Library (Проект/Библиотека) |
Список выбора библиотеки или проекта. Предоставляет возможность выбора интересующей темы из списка библиотек или проекта |
Search Text (Значение для поиска) |
Список значений для текстового поиска. Позволяет совместно с кнопкой поиска и кнопкой показа/подавления результатов поиска найти объекты, в которых встречается заданное значение |
|
Кнопка Go Back (Назад). Перемещает указатель активной строки на предыдущую выбранную позицию в списках Classes (Классы) и Members (Состав) |
|
Кнопка Go Forward (Вперед). Перемещает указатель активной строки на следующую позицию из выбранных ранее в списках Classes и Members |
|
Кнопка Copy to Clipboard (Копировать в буфер). Копирует выделенный объект списка Members в буфер обмена Windows |
|
Кнопка View Definition (Показать код). Открывает окно редактирования кода выбранного в списках Classes и Members объекта |
|
Кнопка Help (Справка). Открывает тему справочной системы Visual Basic 6 для выбранного объекта |
|
Кнопка Search (Поиск). Запускает поиск текста, введенного в списке поиска, и открывает после выполнения поиска список итогов поиска Search Results (Итоги поиска) |
|
Кнопка Show/Hide Search Results (Показать/Скрыть результаты поиска). Открывает и скрывает список Search Results результатов поиска |
Список Classes |
Показывает элементы проекта и библиотек |
Список Members |
Показывает объекты, процедуры, события, константы элементов проекта и библиотек |
Список Search Results |
Выводит результаты проведенного текстового поиска в проекте или библиотеках |
Область описания |
Отображает краткое описание выбранного объекта |
В поле списка, предназначенного для текстового поиска, текст вводится вручную с клавиатуры. При этом необходимо иметь в виду, что в этом списке хранятся тексты четырех последних поисков.
После выполнения поиска появляется дополнительный список итогов поиска Search Results (Итоги поиска), в котором отображаются все объекты, соответствующие искомому тексту (рис. 4.3).
Рис. 4.3. Браузер проекта с результатом проведенного поиска
Кнопка Help (Справка) позволяет получить результат только для тех объектов и элементов этих объектов, описание которых есть в справочной системе. Для разработанных при проектировании форм, конечно, никакого обращения к справочной системе не будет. Но если выбрать свойство или метод этой формы, то будет вызвана справочная система с соответствующей справкой по выбранному свойству, методу или другой теме, которая есть в справочной системе.
Окно браузера и окно проводника при работе над проектом дополняют друг друга. В проводнике более наглядна иерархия проекта и из него запускается визуальное проектирование объектов, а в браузере подробно представлен состав элементов проекта, библиотек, классов. В окне Object Browser удобно работать с объектами более низкого уровня, чем формы, диалоговые окна, файлы проекта. Из окна браузера запускается редактор кода объектов, запуск визуального проектирования здесь недоступен.
Visual Basic 6 предоставляет возможность редактировать свойства проекта с помощью диалогового окна свойств проекта Project Properties (рис. 4.4). Для открытия этого окна необходимо в меню Project (Проект) выбрать команду <Имя проекта> Properties (Свойства проекта).
Рис. 4.4. Вкладка General окна свойств проекта
Диалоговое окно Project Properties состоит из пяти вкладок (рис. 4.4):
Вкладка General диалогового окна Project Properties позволяет задать основные свойства проекта. На этой вкладке можно указать тип проекта, выбрав требуемое значение из раскрывающегося списка Project Type (Тип проекта). В этом списке содержатся следующие типы проектов:
В раскрывающемся списке Startup Object (Объект запуска) можно выбрать объект проекта, который будет выполняться при запуске приложения первым. По умолчанию Visual Basic запускает первое созданное окно проекта. Однако это не всегда подходит и порой требуется первым запустить другое окно или предварительно выполнить некоторую процедуру. Для указания первого выполняемого объекта используется раскрывающийся список Startup Object, в котором указаны все формы и диалоговые окна проекта. Используя значение Sub Main этого списка, можно назначить выполнение процедуры до загрузки диалоговых окон и форм. При этом работа приложения начнется с процедуры Main. Понятно, что в этом случае такая процедура должна быть создана и находиться в проекте.
В поле Project Name (Имя проекта) вкладки General можно ввести полное имя проекта. Дополнительные примечания или пояснения к проекту вводятся в поле примечаний или пояснений к проекту Project Description (Описание проекта).
Обязательной частью любого коммерческого приложения является справочная система. Разработка справочной системы выполняется с помощью специальных программ, и ее создание рассматривается в отдельной главе книги. Для подключения справочной системы к проекту используется поле Help File Name (Имя файла справки). Имя справочной системы можно ввести вручную или вызвать окно выбора и найти требуемый файл справочной системы. При этом в поле Project Help Context ID (Идентификатор содержания справки) необходимо ввести идентификатор содержания справки.
Для параметров компонентов ActiveX используется область Threading Model (Подпроцессы модели). Здесь можно задать дополнительные настройки, касающиеся работы компонентов ActiveX.
На вкладке Make (Создать) диалогового окна Project Properties задаются атрибуты создаваемого приложения (рис. 4.5). В области Version Number (Номер версии) можно задать номер версии приложения, состоящий из трех частей, используя для этого поля Major (Основной), Minor (Дополнительный) и Revision (Номер сборки приложения, номер релиза). Обычно номер приложения начинается с 1.0.0 и далее увеличивается, начиная с номера сборки приложения. Интервал значений всех трех полей от 0 до 9999. Здесь же можно установить признак автоматического увеличения номера версии, используя флажок Auto Increment (Автоувеличение). В этом случае номер сборки будет автоматически увеличиваться при каждой компиляции проекта.
Рис. 4.5. Вкладка Make окна свойств проекта
Совет
Желательно поддерживать нумерацию версий проекта. Это существенно облегчает техническую поддержку приложения и при соответствующем документировании изменений от версии к версии поможет отслеживать наличие у пользователей последней версии вашего приложения.
В области Application (Приложение) вкладки Make задаются внешние атрибуты приложения. В поле Title (Заголовок) — имя проекта приложения. В поле Icon (Значок) выбирается значок для приложения.
Кроме номера версии и номера сборки, на вкладке Make можно указать более подробные сведения о версии в области Version Information (Информация о версии). Для этого в списке Type (Тип) выбирается параметр, а в поле Value (Значение) задается его значение.
Список Type содержит следующие параметры:
Часто возникает необходимость запускать приложение с некоторыми параметрами по аналогии с запуском исполняемого файла в DOS или в диалоговом окне Запуск программы системы Windows, открываемом при выборе команды Выполнить меню Пуск:
MyOraDataApp.exe dbname,username,password.
Для этого служит поле Command Line Arguments (Параметры строки команд). В нем можно ввести любое, ограниченное только размером поля, количество параметров, передаваемых приложению при запуске. Полю Command Line Arguments соответствует системная переменная command$ и при запуске приложения содержимое поля передается в эту переменную. Проанализировав в программе переменную command$ и используя условные конструкции, можно выполнить автоматический выбор действий приложения в зависимости от параметров запуска. В данном случае при запуске файла MyOraDataApp.exe можно сразу подключаться к требуемой базе данных без открытия диалогового окна, содержащего запрос на присоединение. Строку dbname, username, password можно проанализировать, выделить имена базы данных, пользователя и пароль и выполнить соединение с базой данных. Соответственно, если параметров не будет, то есть строка Command Line Arguments, а значит, и переменная Command$ не будут содержать значений, можно вызывать диалоговое окно ввода имени базы данных, пользователя и пароля доступа к базе данных.
Поле Conditional Compilation Arguments позволяет организовать условную компиляцию приложения. Имеется в виду следующее. Например, необходимо, чтобы приложение MyOraDataApp работало не только с базами данных Oracle, но и с Microsoft SQL. Для этого можно использовать команды препроцессора для организации условной компиляции: #If ... #Then ... #Else ... #End. Например:
# If DBPlatforma = 0
DBType = 'ORACLE'
#Else
DBType = 'MS_SQL'
#End If
Если в поле Conditional Compilation Arguments ввести значение ' DBPlatforma = 0', то при компиляции приложения переменной DBType будет присвоено значение 'ORACLE' и приложение будет скомпилировано для работы с базами Oracle. Для этого, конечно, уже в исходном коде приложения необходимо выполнить соответствующий анализ переменной DBType. При вводе в поле Conditional Compilation Arguments значения 'DBPlatforma = 1' компилируется приложение для работы с базами данных Microsoft SQL.
Замечание
Фактически, содержимое поля Conditional Compilation Arguments (Дополнительные параметры компиляции) соответствует команде препроцессора #Const, которая объявляет переменную и присваивает ей значение.
Вкладка Compile (Компиляция) диалогового окна Project Properties (рис. 4.6) позволяет установить один из двух возможных вариантов компиляции приложения: в Р-код или во внутренний код исполняемого файла (с расширением ехе) приложения. В первом случае необходимо выбрать опцию Compile to P-Code (Компиляция в Р-код), во втором, соответственно, опцию Compile to Native Code (Компиляция во внутренний код). При выборе второго варианта становятся доступными флажки и опции режимов компиляции во внутренний код компьютера.
Рис. 4.6. Вкладка Compile окна свойств проекта
Приложение в Р-коде не является полностью скомпилированным в настоящем понимании компиляции. Р-код — это псевдокод, который распознает интерпретатор реального времени Visual Basic VBRUN300.DLL, VBRUN500.DLL или VBRUN600.DLL. Приложение при этом может работать только при поддержке этих интерпретаторов, то есть без среды разработки, но не самостоятельно, как исполняемый файл.
Замечание
Приложение, скомпилированное в Р-код, работает медленнее выполняемого файла, поскольку при работе приложения сначала происходит интерпретация команды и лишь затем ее выполнение. Однако Р-код имеет и одно неплохое преимущество. Компиляция занимает Гораздо меньше времени, поэтому можно чаще проверять реальную работу приложения, что очень удобно при разработке и отладке приложения.
При компиляции в машинный код создается файл приложения, для работы которого не требуется среда Visual Basic б и интерпретаторы реального времени. На вкладке Compile для компиляции в машинный код можно настроить дополнительные параметры компиляции:
Дополнительно можно назначить расширенную оптимизацию компиляции приложения. Для этого необходимо воспользоваться кнопкой Advanced Optimization (Расширенная оптимизация). При этом вызывается одноименное диалоговое окно (рис. 4.7).
В диалоговом окне Advanced Optimizations можно настроить дополнительные параметры оптимизации, используя следующие флажки:
Рис. 4.7. Диалоговое окно Advanced Optimizations для настройки параметров расширенной оптимизации
Вкладка Component (Компоненты) диалогового окна Project Properties предназначена, в основном, для работы с приложениями, в которых используются компоненты ActiveX (рис. 4.8).
Замечание
Настройки вкладки Component становятся доступными при создании приложений с компонентами ActiveX. Для таких приложений на вкладке General (Основная) диалогового окна Project Properties из списка Project Type (Тип проекта) должно быть выбрано значение ActiveX.EXE, ActiveX.DLL или ActiveX Control.
Рис. 4.8. Вкладка Component окна свойств проекта
В области Start Mode (Режим запуска) вкладки можно указать режим запуска приложения, установив одну из следующих опций:
Флажок Remote Server Files (Удаленный сервер файлов) задает параметры для удаленного запуска приложения в реестре Windows. При установке этого флажка создается файл с расширением vbr для хранения информации реестра и DLL-файл. Оба этих файла необходимы для запуска сервера ActiveX удаленного компьютера. Этот флажок доступен только в Visual Basic 6 (Enterprise Edition).
Опции области Version Compatibility (Совместимость версий) дают возможность обеспечить совместимость разрабатываемых компонентов ActiveX с версиями приложения. Область содержит следующие опции:
Вкладка Debugging (Отладка) диалогового окна Project Properties предоставляет возможность задать некоторые параметры среды IDE для отладки приложения в режиме запуска (рис. 4.9). Параметры этой вкладки предназначены также для разработки приложений, использующих компоненты ActiveX. Для приложений типа Standard EXE настройки этой вкладки недоступны.
Рис. 4.9. Вкладка Debugging окна свойств проекта
На вкладке расположена одна область When this project starts (При запуске проекта), в составе которой следующие параметры:
Использование в проекте внешних библиотек объектов
Для быстрой разработки приложения важно уметь использовать готовые разработки других программистов вашей фирмы или разработки сторонних фирм, подключая требуемые объекты к разрабатываемому приложению. Такая возможность предоставляется диалоговым окном References (Ссылки), содержащим ссылки на библиотеки объектов (рис. 4.10).
Рис. 4.10. Окно ссылок проекта для присоединения библиотек
Для открытия диалогового окна References необходимо выполнить команду References (Ссылки) меню Project (Проект).
Подключение библиотеки при помощи этого диалогового окна выполняется достаточно просто. Необходимо в списке доступных библиотек Available References (Доступные ссылки) установить флажки рядом с именами требуемых библиотек. Для отключения ненужной библиотеки следует снять флажок, переместив курсор к установленному флажку рядом с именем библиотеки и щелкнув кнопкой мыши.
Совет
При отключении библиотеки необходимо предварительно удалить из программного кода приложения все ссылки на процедуры и функции удаляемой библиотеки, а также все используемые из удаляемой библиотеки элементы управления.
Поскольку список подключаемых библиотек достаточно длинный, имеет смысл наиболее часто используемые библиотеки расположить в верхних строчках этого списка. Для изменения порядка следования библиотек служат кнопки, расположенные справа от списка Available References. Чтобы переместить имя библиотеки на позицию вверх, необходимо его выделить и нажать кнопку со стрелкой вверх. Для перемещения имени библиотеки вниз по списку предназначена кнопка с направленной вниз стрелкой.
Для добавления в список Available References дополнительной библиотеки необходимо воспользоваться кнопкой Browse (Просмотр). При этом открывается диалоговое окно добавления ссылок, в котором можно найти требуемую библиотеку и нажатием кнопки Открыть переместить в список.
Использование в проекте внешних компонентов
Аналогично присоединению библиотек, в Visual Basic 6 имеется средство для присоединения компонентов (элементов управления). Это — диалоговое окно Components (Компоненты), содержащее список доступных компонентов (рис. 4.11). Часть из этих компонентов — стандартные, уже присутствует на панели элементов управления среды проектирования.
Рис. 4.11. Окно стандартных компонентов и компонентов независимых разработчиков
Для вызова окна Components необходимо выполнить команду Components меню Project. Подключаются компоненты аналогично внешним ссылкам установкой флажка справа от выбранного компонента.
Для фильтрации компонентов по признаку "выбранные/невыбранные" можно использовать флажок Selected Items Only (Только выбранные пункты). Если флажок установлен, в окне будут только отмеченные компоненты.
Файл ресурсов проекта приложения имеет расширение res и служит для хранения информации (текста, значков, растровых изображений), изменение которой не требует редактирования кода. Возможность работы с файлом ресурсов — это одна из новинок Visual Basic 6. В предыдущих версиях приходилось использовать для этого Visual C++. Очень удобно, что все эти данные находятся в одном файле. Это обеспечивает дополнительные возможности для гибкой локализации приложения, совместимости версий приложения, хранения параметров конфигурации версий приложения.
Замечание
Необходимо иметь в виду, что для приложения может быть только один файл ресурсов.
Рис. 4.12. Окно редактора файла ресурсов
Любой ресурс можно добавить в файл ресурсов, удалить из него или отредактировать его. Для этого предназначен редактор ресурсов Resource Editor (Редактор ресурсов) инструментальной среды проектирования (рис. 4.12). Для вызова редактора можно воспользоваться одним из следующих способов:
Совет
Если на панели инструментов нет соответствующего значка или в меню нет команды, их можно подключить с помощью диалогового окна Add-In Manager (Управление надстройками), вызываемого из главного меню одноименной командой. В этом окне необходимо для элемента VB 6 Resource Editor списка надстроек установить флажок Loaded/Unloaded. Следует заметить, что все это можно сделать, если редактор ресурсов Resource Editor установлен при инсталляции Visual Basic 6.
С помощью Resource Editor можно выполнить следующие действия:
В Visual Basic можно работать с файлом ресурсов в исходном коде программы, используя следующие функции:
Функция |
Назначение |
LoadResString |
Возвращает текстовые строки |
LoadResPicture |
Возвращает объекты типа ярлыков, значков или курсоров |
LoadResData |
Возвращает массив данных |
Из рисунков с окнами редактирования ресурсов (рис. 4.13 и 4.14) наглядно видно, что по коду (идентификатору) ресурса при помощи указанных функций можно выбрать любое строковое значение, изображение или другой ресурс из файла ресурсов в качестве параметра настройки приложения. Используя такой подход, можно организовать гибкую настройку приложения.
Рис. 4.13. Диалоговое окно редактирования ярлыка из файла ресурсов
Рис. 4.14. Диалоговое окно редактирования текстовой таблицы из файла ресурсов
Создание исполняемого файла проекта
После завершения проектирования проекта, тестирования и отладки его в среде Visual Basic наступает завершающий этап — компиляция, то есть создание независимого от среды исполняемого файла (с расширением ехе), библиотеки динамической компоновки (с расширением dll) или компонента ActiveX (с расширением осх).
Для запуска процесса компиляции и создания исполняемого файла проекта приложения необходимо выполнить следующие действия:
1. Настроить параметры компиляции на вкладках Make (Создать) и Compile (Компиляция) диалогового окна Project Properties свойств проекта.
2. Выполнить команду Make <имя проекта>.ехе меню File (Файл). При этом появляется диалоговое окно Make Project (рис. 4.15).
3. В поле Имя файла диалогового окна Make Project (Создать проект) ввести имя исполняемого файла или оставить имя, предлагаемое Visual Basic по умолчанию исходя из имени проекта.
4. Нажать кнопку Options (Параметры) и в открывшемся диалоговом окне Project Properties свойств проекта ввести номер версии исполняемого файла.
5. Нажатием кнопки ОК запустить процесс компиляции.
Рис. 4.15. Диалоговое окно Make Project
После успешного завершения процесса компиляции проект готов к независимой работе без среды Visual Basic 6.
назад | содержание | вперед