Установка свойств проекта
А теперь немного прервемся, чтобы обсудить диалоговое окно Project Properties (Свойства проекта). Большая часть полей в этом окно очевидны, но не все. Кроме того, некоторые, казалось бы, очевидные опции, имеют разветвления, о которых следует знать. При желании, этот раздел можно пропустить и вернуться к нему, когда потребуется дополнительная информация. Диалоговое окно Project Properties, показанное на рис. 155, позволяет выбрать тип проекта и установить различные опции. Вкладки окна объяснены ниже.
Рис. 15.5. Вкладка General окна Project Properties
Вкладка General
Project Type (Тип проекта).
Этот список содержит те же типы проектов, что и в диалоговом окне File Open (Открыть файл). В этом списке доступны следующие типы проектов Standard EXE, ActiveX DLL, ActiveX EXE и ActiveX control (элемент управления ActiveX). Изменение типа проекта всякий раз, когда вам это кажется необходимым, не всегда возможно или просто. Переключение между ActiveX DLL и Standard EXE проектами допустимо и легко осуществимо. Пусть нужно создать компонент ActiveX DLL. Для упрощения процесса тестирования и отладки можно запустить Standard EXE проект и добавить модуль класса. Когда этот модуль работает в контексте текущего проекта, можно удалить формы из проекта и изменить тип проекта со Standard EXE на ActiveX DLL.
После создания и регистрации (как описано в разделе "Регистрация компонентов ActiveX" этой главы) можно использовать этот класс в любом проекте.
• Startup Object (Стартовый объект). Это поле позволит определить, что происходит при запуске проекта. Проекты ActiveX DLL и ActiveX EXE нельзя выполнять. Компонент ActiveX должен вызываться из кода проекта Standard EXE. Для проекта Standard EXE стартовым объектом может быть форма или подпрограмма Main. Подпрограмма Main должна располагаться в стандартном модуле проекта и создавать первую видимую форму приложения. Программные компоненты не могут иметь в качестве стартового объекта форму. Стартовым объектом компонентов ActiveX EXE или ActiveX DLL должна быть либо подпрограмма Main, либо None. Если изменять тип проекта во время его реализации, то нужно также изменить стартовый объект.
Для групп проектов можно устанавливать различные стартовые объекты для каждого проекта в группе. Для определения стартового проекта щелкните правой кнопкой на названии проекта в окне проекта и выберите команду Set as Start-up.
• Project Name (Имя Проекта). Это свойство является именем компонента и отображается в броузере объектов (Object Browser). Очень важно задать содержательное имя проекта, иначе придется искать различия среди различных компонентов с одинаковым названием Project 1 на диске. Если компонент имеет имя MyComponent и определяет класс, который называется MyClass, то нужно создать объектную переменную для ссылки на этот класс внутри другого приложения с помощью оператора:
Set Object1 = CreateObjectC("MyObject.MyClass")
Изменение имени проекта (или, например, имени класса) после его реализации требует и пересмотра исходного кода программы. Используйте содержательные имена проектов и избегайте таких имен, как Test, Example или Server. Компоненты ActiveX регистрируются в системе - это не просто файлы, лежащие в папке.
• Help File Name (Имя файла подсказки), Project Help Context ID (Идентификатор подсказки). Эти два поля позволяют задать файл справки проекта и идентификатор подсказки. Хотя файлы подсказки не обсуждаются в этой книге, любой компонент, который реализуется (в особенности, компонент ActiveX), должен иметь такой файл.
• Project Description (Описание проекта). Это описание проекта и оно появляется в броузере объектов, когда пользователь выбирает компонент.
• Upgrade ActiveX Controls (Обновление элементов управления ActiveX). Установите эту опцию, чтобы Visual Basic автоматически заменял элементы управления ActiveX их новыми версиями, если желаете обновить один или несколько элементов управления, используемых в проекте.
• Require License Key (Требуется номер лицензии). Это поле позволит защитить компоненты с помощью лицензии. Компоненты ActiveX, созданные с помощью действий, описанных в этой главе, будут работать в любой системе, где они инсталлированы. Предположим, разработана новая ActiveX DLL, которая используется в ваших приложениях. Конечные пользователи должны иметь возможность использовать эти компоненты только во время выполнения соответствующих приложений. Это достигается применением лицензий. Когда вы выйдете на этот уровень разработки компонентов, следует обратиться к документации, чтобы узнать, как создавать лицензии на компоненты.
• Unattended Execution (Фоновое выполнение). Опции в этой секции относятся к многопотоковым ЕХЕ-серверам и не будут обсуждаться в этой книге. Эта опция указывает Visual Basic пропускать все окна сообщений и других форм ввода или вывода, чтобы компонент выполнялся без привлечения внимания пользователя. Если вызван компонент ActiveX EXE, который выполняется на сервере, он не должен выдавать сообщения (которые, возможно, были вставлены в целях отладки) на сервер, а потом ждать реакции пользователя.
Вкладка Component
• Start Mode (Режим запуска). В этой секции можно определить, будет ли ActiveX ЕХЕ-сервер выполняться как отдельное приложение или как компонент ActiveX. Эта опция применима только к компонентам ActiveX EXE, а по умолчанию выбран компонент ActiveX.
• Remote Server (Удаленный сервер). Если установлена эта опция. Visual Basic создает файлы с расширением .vbr и с именем, как у dll-файла. Этот vbr-файл содержит информацию, которая требуется системному реестру Windows для выполнения ActiveX-сервера на удаленном компьютере.
• Version Compatibility (Совместимость версий). Опции в этой секции позволяют установить уровень совместимости версии, которая может быть следующей
• No Compatibility (He требуется). Если эта опция выбрана, совместимость не требуется
• Project Compatibility (На уровне проекта). Если опция выбрана, то активизируется окно Location (место расположения), что позволит искать файл, совместимый с проектом Если опция не выбрана, то окно Location недоступно. При разработке элементов управления ActiveX или программных компонентов, используемых с определенным проектом, щелкните на этой опции и выберите имя проекта в последнем поле вкладки По умолчанию эта опция отмечена для всех ActiveX-проектов, так что каждый раз при изменении элемента управления или кода компонента проект также будет обновляться.
• Binary Compatibility (На уровне кода). Эта опция должна быть выбрана для поддержки совместимости среди проектов, откомпилированных с использованием вашего компонента.