Библиотека Интернет Индустрии I2R.ru |
|||
|
Как создавать элементы управления ActiveX в среде VB
Вступительное замечаниеВ конце 1996 года, еще до официального объявления VB 5.0, Microsoft анонсировала новый продукт: Visual Basic 5.0, Control Creation Edition (VB5/CCE). VB5/CCE представлял собой специальную бесплатно распространяемую редакцию будущей версии VB 5.0, предназначенную для создания элементов управления ActiveX Controls. Ее появление было вызвано, по-видимому, стремлением Microsoft поскорее познакомить программистов с принципиально новой возможностью VB 5.0 - разработкой ActiveX Controls. Статья писалась на основе бета-версии VB5/CCE, но все сказанное в ней верно для всех вариантов VB 5.0 и VB 6.0. Прежде всего отметим...Прежде всего отметим, что создавать элементы управления ActiveX можно в любой в редакции VB 5.0, в том числе и в VB5/CCE, которая предназначена только для этого и которую Microsoft распространяет бесплатно через Internet, а также на различных своих сервисных компакт-дисках. VB5/CCE не позволяет создавать автономные приложения, но с ними можно работать в среде системы. Фактически такие приложения можно использовать только для отладки элементов управления и в целях обучения. При этом VB5/CCE обладает всеми интеллектуальными возможностями среды разработки VB 5.0 и позволяет использовать дополнительные продукты третьих фирм. Для создания элементов управления ActiveX с помощью VB5 можно использовать три основных сценария: 1. Создание элементов управления с самого начала. В VB5 имеется все необходимое для создания полностью автономных элементов управления ActiveX прямо в среде. И хотя это действительно теперь возможно, данный путь не очень прост и, по-видимому, следующие два варианта получат большее распространение. 2. Выделение подкласса и настройка существующего элемента управления ActiveX. В качестве отправной точки разработчики могут воспользоваться многочисленными коммерческими продуктами (в каталоге VBPJ приведен список из более 2 тыс. подобных компонентов). Для этого необходимо выделить подкласс и настроить какой-либо элемент управления, например, изменив значения его свойств, а затем скомпилировать его, создавая тем самым пользовательскую версию этого компонента. 3. Объединение разных элементов управления ActiveX в единый комплекс. Для этого разработчики могут объединить в один проект разные готовые элементы управления, затем настроить их внешний вид и функции, а затем скомпилировать в один компонент. Наверное, этот сценарий станет наиболее популярным способом создания пользовательских элементов управления. Вопросы лицензированияЭлементы управления ActiveX обычно содержат две части, подлежащие лицензированию: компонент, используемый во время разработки (design time element), и модуль поддержки (runtime element). Обычно разработчик приобретает полные права на использование дополнительного элемента управления, что дает возможность применять его (элемент) в любой среде разработки. После того как разработчик завершает создание приложения, у него есть право передавать его конечным пользователям в виде EXE-файла вместе с модулем поддержки для данного элемента управления. Таким образом, конечные пользователи получают возможность применения этого элемента управления ActiveX внутри данного приложения, но они не могут использовать его для собственных разработок. Такая ситуация аналогична и для Internet-сценариев. Любой разработчик может создать элемент управления ActiveX из купленного компонента ActiveX третьей фирмы, а уже затем вы можете работать с новым элементом управления внутри Webстраницы. Конечный пользователь, который "запускает" его внутри этой Webстраницы, имеет полные права на модуль поддержки для данного элемента управления внутри страницы, однако он не может использовать его для разработки, не приобретя вначале соответствующую лицензию. Необходимо подчеркнуть, что для некоторых элементов управления ActiveX лицензионная политика может отличаться от той, что описана выше. Поэтому всегда следует изучать лицензионное соглашение, которое прилагается к конкретному элементу управления, чтобы получить точную информацию о правах использования и ограничениях. Пример создания элемента управления ActiveXЭто мы покажем на примере варианта объединения готовых элементов управления ActiveX в среде VB5/CCE. В данном случае нашей целью будет создание элемента управления, изображенного на рис. 1 и обычно называемого "вертушкой" ("spinner"). Его идея проста - щелкая мышью стрелки, пользователь может увеличивать или уменьшать числовое значение в окне. Теперь, когда мы определили, что мы хотим получить, можно приступить к его созданию. Рис. 1. Это изображение элемента управления, которое мы хотим создать. Шаг 1. Создаем тест-контейнерЗапустите VB5/CCE, выделите значок Standard EXE в появившемся окне New Project и щелкните мышью кнопку Open. Этим вы создаете приложение-контейнер, которое будет использоваться для тестирования создаваемого нами элемента управления. Шаг 2. Начинаем создание нового элемента управленияВ меню File выберите команду Add Project. В диалоговом окне Add Project выделите значок ActiveX Control и щелкните кнопку Open. Теперь у вас на экране должно быть два открытых проекта, очень похожих друг на друга. Но Project1 - это приложение (Form), а Project2 - элемент управления пользователя (UserControl). Обратите внимание, что в панели инструментов появился новый элемент управления. Если подвести к нему курсор мыши, то на экране появится его текущее имя - "UserControl1". Однако значок, соответствующий данному элементу управления, окрашен в серый цвет, что означает, что он недоступен в данный момент. Он станет доступным только через несколько шагов. Если вас не устраивает имя, присвоенное по умолчанию, то его можно поменять в любой момент. Давайте сделаем это сейчас - выделите в окне проектов значок UserControl1 и в поле Name появившегося окна Properties введите новое имя, например MySpinner (рис. 2). Рис. 2. Два проекта на одном экране: Project1 - это приложение (Form), а Project2 - элемент управления пользователя (UserControl). Шаг 3. Рисуем визуальный интерфейс для своего элемента управленияДля создания нашего элемента управления объединим два стандартных компонента: TextBox (текстовое окно) и VSrollBar (вертикальная прокрутка). Вначале щелкните значок TextBox на панели инструментов и с помощью мыши нарисуйте маленькое текстовое окно в левом верхнем углу окна формы Project2. Затем таким же образом нарисуйте в окне элемент управления VScrollBar справа от TextBox. Обратите внимание, что в Project2 используются сейчас три визуальных компонента: специальная форма типа UserControl, которую мы назвали MySpinner, и два элемента управления - TextBox (Text1 - имя по умолчанию) и VScrollBar (VScroll1). Общие размеры нового элемента управления будут определяться именно формой UserControl. Поскольку по умолчанию она получилась слишком большой, то измените с помощью мыши размеры таким образом, чтобы уже нарисованные элементы управления оказались внутри формы (рис. 3). Рис. 3. Рисуем визуальный интерфейс для нового элемента управления. Можно было сделать и по-другому: сначала определить общие размеры новой формы, а уже потом под нее подгонять размеры стандартных компонентов. Шаг 4. Пишем код для управления событиямиТеперь нужно написать некоторый код, с помощью которого текущее значение вертикальной прокрутки будет отображаться в текстовом окне при щелчках мышью стрелок. Для этого дважды щелкните мышью изображение нарисованной вами вертикальной прокрутки и в появившемся окне Code в процедуру VScroll1_Change (обработка события "Изменение значения") введите следующую строку: text1.text = vscroll1.value Обратите внимание, что, как только вы ввели знак ".", на экране появился список всех допустимых свойств для данного элемента управления (рис. 4) текстового окна. Это пример новых "интеллектуальных" свойств среды разработки VB. Вы можете либо выбрать нужный элемент списка (щелкнув два раза мышью или выделив клавишами и нажав Tab), либо ввести имя свойства вручную. В последнем случае курсор сам передвигается по списку, и если вы, не закончив полностью ввод имени, нажмете Tab или Enter, то автоматически вставится текущий элемент списка. (При вводе "Value" достаточно ввести "v".) К сожалению, если вы введете неверное имя (например, "velue"), то никакого сообщения об ошибке сразу не появится - это будет обнаружено лишь при запуске программы на выполнение или компиляции. Рис. 4. Пишем код для управления событиями. В целом, новый элемент управления готов. Теперь закройте окно Code, щелкнув на нем кнопку "Закрыть" ("крестик" в правом верхнем углу), а потом таким же образом закройте Project2. Шаг 5. Протестируем полученный элемент управленияСейчас, если вы все сделали правильно, элемент управления MySpinner на панели инструментов уже не окрашен в серый цвет, что означает, что он готов для использования. Чтобы протестировать его, щелкните этот значок в панели инструментов и нарисуйте его на форме Form1 как показано на рис. 5. Затем нажмите клавишу F5 или кнопку Start для запуска приложения. Когда вы начнете щелкать стрелки MySpinner, числовое значение в тестовом окне будет изменяться. Заработало! Рис. 5. Тестирование первого варианта нового элемента управления. Шаг 6. Продолжаем разработку - дальнейшая модернизация MySpinnerЗаработало, но не совсем так, как этого бы хотелось. Во-первых, в момент запуска приложения появляется непонятное слово "text", и только после того, как вы щелкнули стрелки, - нужные числовые значения. Во-вторых, сам шрифт в окне слишком мелкий. В-третьих, числовое значение не хочет становиться меньше нуля. Так что наш элемент управления требует некоторой доработки. Для этого опять вызовем на экран Project2, щелкнув его значок в окне Project. Обратите внимание, что значок MySpinner в окне инструментов опять стал серым (недоступным), а изображение на форме Form1 покрылось штриховкой. Сделаем нужные дополнения. В окне Properties для элемента управления Text1 установим значение свойства Text = 000 (просто чтобы хорошо видеть размер цифр), а потом щелкнем название свойства Font и в появившемся окне установим нужный размер шрифта, например 18. А для VSrcoll1 присвоим свойству Min (нижняя граница диапазона) значение -32766. Дважды щелкнем по форме MySpinner и в процедуре UserControl_Initialize (окно Code) введем строку для установки начального значения окна (рис. 6): text1.text = vscroll1.value Рис. 6. Продолжаем разработку нашего компонента. Уточняем значения свойств и программный код. Шаг 7. Создание автономного элемента управленияЗакроем все окна Project2 и повторим тестирование, описанное в шаге 5. Теперь наш элемент управления работает гораздо лучше и выглядит симпатичнее (рис. 7). Рис. 7. Так выглядит окончательный вариант нового элемента управления в тестовом приложении. Теперь можно создавать автономный компонент. Для начала заменим стандартное имя Project2 на более оригинальное, например TestCont. Затем в меню File выберем команду TestCont.ocx, в окне Make Project нажмем OK, и... наш автономный элемент управления MySpinner, записанный под именем TextCont.ocx, готов к использованию в любой среде разработки, которая поддерживает технологию ActiveX. Запустите еще раз VB5 (любую редакцию), выберите в меню Project команду Components, найдите во вкладке Controls наш TestCont, отметьте его, а затем нажмите OK. Новый пользовательский элемент управления MySpinner сразу же появится на панели инструментов. Можете работать. |
|
2000-2008 г. Все авторские права соблюдены. |
|