CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

VB в ипостаси Script

Константин НОСОВ k_n@ua.fm

Окончание, начало см. МК 20, 23 (243, 246)

VBScript и элементы управления ActiveX

На предыдущих уроках мы узнали о VBScript достаточно, чтобы перейти к более изощренным возможностям языка.

На сегодняшнем завершающем уроке разберем одну из важнейших конструкций VBScript —объекты. Объекты VBScript можно охарактеризовать как некие программные элементы внешних приложений, которые управляются и взаимодействуют со сценариями на VBScript. Например, объектом является апплет Java, подключаемый к web-странице с помощью кода VBScript. Мы же остановимся на таких часто используемых объектах как элементы управления ActiveX.

Элементы управления ActiveX, известные ранее как элементы OLE или OCX, представляют собой распределенные компоненты, которые можно использовать в приложениях, создаваемых практически на любых языках программирования — C++, Delphi, VB, VBA и т.д. Эти компоненты фактически являются библиотеками, к которым могут обращаться внешние программы. Использование ActiveX в web-дизайне обусловлено необходимостью расширения функциональности web-приложений, поскольку набор элементов управления стандартного HTML часто бывает недостаточен для решения многих важных задач. Одним из средств преодоления этого ограничения и является технология ActiveX.

Наверно, у читателя может возникнуть вопрос: а где же можно достать компоненты ActiveX для своих страниц? Для этого существует несколько путей. Опытный программист может разработать собственные компоненты ActiveX в современных программных средах (например, в Delphi или Visual Studio). Если же заниматься этим некогда, компонент с нужными функциями можно попробовать найти в Сети среди свободно распространяемых программ или приобрести как коммерческий продукт.

Использование ActiveX включает два основных шага:

добавление объекта ActiveX на страницу;

написание программы обработки событий, связанных с данным объектом.

Как это реализовывается на VBScript? Для демонстрации выберем Microsoft MonthView Control (Рис. 1) — элемент управления, похожий на календарь, позволяющий выбрать дату. Если на вашем компьютере установлена одна из современных версий Microsoft Office, то данный компонент также, скорее всего, установлен.

Рис. 1.

Разместим фрагмент, содержащий описание MonthView, в нужном месте BODY-секции документа HTML (в нашем варианте он помещен в правую ячейку таблицы; ячейка слева содержит пояснительную надпись):

Разберем написанное. Главным тэгом, сообщающим браузеру, что на загружаемой web-странице находится элемент ActiveX, является <OBJECT>. Он включает несколько атрибутов и параметров:

атрибут ID определяет имя объекта в документе — на него делаются ссылки при написании процедур обработки;

атрибут CLASSID — класс, к которому принадлежит объект; для элементов ActiveX — это идентификационный номер класса в системном реестре вашей ОС;

CODEBASE — важнейший атрибут, содержащий адрес URL-кода объекта. В нашем примере web-адрес, конечно, фиктивный, но программный модуль компонента (файл mscomct2.ocx) вполне реальный: именно в этом модуле находится код MonthView. На использование CODEBASE накладывается довольно существенное ограничение, которое всегда надо иметь в виду: загружаемый код должен находиться на том же домене, что и страница.

Здесь уместно рассказать, как элементы ActiveX подключаются к странице. Если загружаемый элемент уже имеется на компьютере, то он не загружается из Сети, а непосредственно используется браузером. Если в системе нужного элемента ActiveX нет, то он загружается в компьютер, регистрируется системой и становится доступным для использования в любых приложениях. Кроме того, в атрибуте CODEBASE можно задавать версию требуемого элемента. В этом случае дополнительно проверяется, соответствует ли версия элемента, установленного на компьютере (если таковой имеется), версии, указанной в коде. Если соответствие не соблюдается, происходит загрузка нужной версии.

Вспомогательные атрибуты, например HEIGHT и WIDTH для задания высоты и ширины элемента.

Следующая группа тэгов —значения параметров (тэги PARAM). Как видно из нашего примера, параметры задаются по схеме:

Параметры определяют свойства объекта. В листинге мы привели несколько первых параметров; как правило, их число достаточно велико.

Возможно, у многих читателей в данном месте возникнет вполне закономерный вопрос о том, как можно корректно установить значения параметров и, в особенности, содержимое атрибута CLASSID, представляющее сложный реестровый код. На самом деле эта сложная задача решается очень просто, если воспользоваться специальным инструментом для внедрения объектов ActiveX в web-страницы — утилитой Microsoft ActiveX Control Pad (ACP). Данное приложение можно бесплатно загрузить с web-узла Microsoft (файл setuppad.exe) и инсталлировать на своем компьютере.

Внедрение ActiveX-элемента с помощью ACP (Рис. 2) обычно начинают со вставки нового элемента в выбранное место загруженной в приложение страницы. В показанном на иллюстрации окне Insert ActiveX Control выводятся все зарегистрированные в системе элементы управления ActiveX, пользователю остается только выбрать интересующий его компонент. После выбора элемента выводятся два окна (Рис. 3) — для редактирования и для настройки свойств элемента. В окне редактирования Edit ActiveX Control можно установить некоторые внешние параметры объекта (например, размер), в окне Properties — значения свойств, устанавливаемых в разделе <PARAM>. Последнее окно существенно упрощает процесс настройки элемента ActiveX. Так, значения параметров, принимающих фиксированное число значений, можно выбрать из разворачивающегося списка; все изменения, отражающееся на внешнем виде элемента, можно сразу же просмотреть в окне редактирования. О значении большинства параметров (таких как Font, Color, Visible) можно без труда догадаться по их названию, для работы же с более сложными параметрами желательно ознакомиться с документацией.

Рис. 2.   Рис. 3.

После настройки элемента ACP добавляется OBJECT-раздел, содержащий только что выполненную настройку выбранного компонента. В дальнейшем, если необходимо изменить свойства элемента, с помощью ACP всегда можно вызвать описанные окна настройки.

Итак, первый шаг — добавление элемента на страницу и его настройку — мы выполнили. Перейдем ко второму — заданию интерактивности.

Для решения этой задачи пригодны способы, описанные в предыдущем уроке — таким образом можно оперировать с введенным элементом, как и с любым другим объектом web-страницы, используя атрибут ID для вызова методов, изменения свойств и обработки событий. Однако и на этом этапе и ACP может пригодиться, для задания каркаса будущей программы. Для этой цели служит специальный мастер —Script Wizard (Рис. 4). Он содержит три панели, каждая из которых отвечает определенной функции. Панель выбора событий (слева вверху) представляет в виде разворачивающегося дерева все объекты управления (размещенные на странице) и их события. Панель вставки действий (справа вверху) также содержит список объектов страницы со свойствами и методами. В нижней части окна находится поле, в которое вводят код создаваемой процедуры. Кроме пользовательских объектов, в панелях отображается объект Window, входящий в объектную модель браузера.

Рис. 4.

Чтобы создать процедуру, обрабатывающую событие, достаточно выбрать нужное событие одного из объектов в панели слева вверху. В поле кода при этом появляется заголовок процедуры, имеющей название ИмяОбъекта_СобытиеОбъекта. На нашей иллюстрации, например, выбрано событие DateClick объекта MonthView1, которое наступает при выборе какой-либо даты в календаре. Ниже заголовка процедуры мы поместили небольшой фрагмент кода, отображающий в окне сообщения выбранную дату. Приведем его полностью:

Смысл процедуры понятен без подробных комментариев. При наступлении события DateClick в переменную D1 заносится обновленная дата (передающаяся в аргументе события), которая выводится вместе с поясняющим текстом в окне сообщения (Рис. 5).

Рис. 5.

Итак, мы на конкретном примере рассмотрели оба шага по использованию объектов ActiveX. Но зачастую этого недостаточно. Нередко возникает ситуация, когда в интерактивном режиме необходимо изменять свойства самого объекта. Например, посетителя вашей web-странички могут не удовлетворить установленные по умолчанию для элемента управления цвет, размеры, шрифты и другие характеристики. И в этом случае на помощь разработчику приходит VBScript — достаточно добавить нескольких строчек кода, чтобы достичь необходимой интерактивности.

Для иллюстрации этих возможностей немного усложним наш пример. Вполне возможно, что зарубежному посетителю вашей страницы будет удобнее ориентироваться в календаре, в котором неделя начинается не понедельником, а другим, соответствующим местным стандартам, днем. Календарь позволяет настроить эту характеристику с помощью свойства (параметра) StartOfWeek, устанавливающего начало недели: воскресенью соответствует значение 1, понедельнику — 2 и т.д. Дополним наш сценарий следующим кодом. Вставим куда-нибудь в BODY-секцию документа разворачивающийся список, содержащий названия дней недели:

Значения VALUE списка, как видим, отвечают значениям StartOfWeek календаря. Теперь остается написать небольшую процедуру обработки выбора начала недели:

В процедуре переменной NewStartOfWeek присваивается выбранное из списка значение, которое позже назначается свойству StartOfWeek календаря. Элемент ActiveX немедленно отображает произведенное изменение (Рис. 6).

Рис. 6.

Итоги

Итак, на этом мы завершаем учебный курс, посвященный использованию VBScript для создания интерактивных web-приложений. Мы познакомились с основными конструкциями языка, с использованием сценариев для взаимодействия пользователя с приложением и объектной моделью браузера, с расширением функциональности программ, основанных на технологии ActiveX. Не стремясь раскрыть все аспекты применения VBScript (для чего необходим учебник, а не журнальная статья), считаю, что изложенных сведений вполне достаточно для того, чтобы начать писать собственные программы.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov