Лабораторная работа № 2 Использование элементов управления ActiveX для создания динамических веб-страниц.



 

Создание высококачественных компонентов различными фирмами - производителями программных продуктов и построение собственных решений на базе готовых, многократно используемых и проверенных компонентов - в этом суть компонентного программирования. Наиболее широкое распространение получили компоненты, созданные на основе Com-технологии и называемые Com-объектами или элементами ActiveX. Написанный ActiveX-компонент вставляется в HTML-страничку. Вот пример простейшей странички

<HTML>

 

<HEAD>

 

<TITLE>Поиск</TITLE>

 

</HEAD>

 

<BODY>

<P ALIGN=CENTER>

 

<OBJECT ID="findword1" - {при помощи этого тэга компонент вставляется в страничку}

 

CLASSID="CLSID:47E50425-E611-11D3-970A-4854E82B17E6"

 

CODEBASE="C:\PATH\FINDWORDS.OCX">

 

</OBJECT>

 

</P>

 

</BODY>

 

</HTML>

В этом примере ActiveX-компонент, находящийся в файле C:\PATH\FINDWORDS.OCX вставляется в HTML-страничку.

Итак, тэг <OBJECT> вставляет в страничку ActiveX-компонент. Его атрибут CLASSID указывает идентификатор класса нашего компонента. ID="findword1" - имя объекта. Здесь можно указать любое имя. По нему в дальнейшем будем ссылаться на компонент в теле странички из скриптов-процедур обработки событий. Далее, для того, чтобы компонент мог использоваться прикладными программами, он должен быть зарегистрирован в реестре. Зарегистрировать его можно программой regsvr32.exe, которая по умолчанию находится в каталоге [System]. Например:

 

regsvr32 C:\PATH\FINDWORDS.OCX

 

Если при открытии странички Explorer не находит в реестре указанный компонент, то он ищет его в местоположении, указанном атрибутом CODEBASE. Здесь может быть полный путь к файлу, если он находится на жестком диске компьютера или даже URL-адрес со всеми сопутствующими атрибутами:

 

http://.../....../.......

 

Атрибут CLASSID является обязательным, а атрибут CODEBASE - необязательный. Для того, чтобы автоматизировать процесс написания скриптов для подсоединения ActiveX компонентов используется программа Microsoft ActiveX Control Pad, распространяемая по открытой лицензии. Эта программа предназначена для внедрения ActiveX-компонентов в HTML-странички. После внедрения ActiveX-компонента его определение выглядит следующим образом:

<OBJECT ID="findword1"

CLASSID="CLSID:47E50425-E611-11D3-970A-4854E82B17E6"

CODEBASE="C:\PATH\FINDWORDS.OCX">

<PARAM NAME="Visible" VALUE="-1">

<PARAM NAME="AutoScroll" VALUE="0">

<PARAM NAME="AutoSize" VALUE="0">

<PARAM NAME="AxBorderStyle" VALUE="1">

<PARAM NAME="Caption" VALUE="findword">

<PARAM NAME="Color" VALUE="2147483663">

<PARAM NAME="Font" VALUE="MS Sans Serif">

<PARAM NAME="KeyPreview" VALUE="0">

<PARAM NAME="PixelsPerInch" VALUE="96">

<PARAM NAME="PrintScale" VALUE="1">

<PARAM NAME="Scaled" VALUE="-1">

<PARAM NAME="DropTarget" VALUE="0">

<PARAM NAME="HelpFile" VALUE="">

<PARAM NAME="DoubleBuffered" VALUE="0">

<PARAM NAME="Enabled" VALUE="-1">

<PARAM NAME="BiDiMode" VALUE="0">

<PARAM NAME="Cursor" VALUE="0">

<PARAM NAME="filename" VALUE="nothing">

</OBJECT>

Данная программа сама подставляет полное определение компонента (например его CLASSID). Однако, полученный код в некоторых случаях приходится подправлять вручную. Так может потребоваться убрать явное указание высоты и ширины объекта.

Рассмотрим пример. Запустите MS ActiveX Control Pad, создайте раскладку с расположенным на ней компонентами  надпись и кнопками. Для этого выполним команду «File-New HTML Layout». Появляется новая страница раскладки и палитра элементов Toolbox. В палитре сосредоточены основные управляющие элементы, также выполненные по технологии ActiveX. Используя технологию перетаскивания, разместим на страничке раскладки элемент «Label» с надписью «Цвет фона» и два элемента «OptionButton» с надписями "Желтый" и "Зеленый". Затем сгруппируем кнопки командой Edit-Group, обеспечив тем самым связь между ними. Далее запустим «Script Wizard». В диалоговой панели этого инструмента имеются три окна: для событий объектов, для используемых параметров объекта и для действий. Все данные представлены в виде иерархического дерева объектов. Необходимо написать три обработчика. Первый из них должен выполняться, когда раскладка только загрузилась. Второй должен вызываться, когда пользователь щелкнул на первой кнопке, а третий - при нажатии на вторую кнопку. Чтобы создать обработчик, необходимо выбрать в левой панели компонент и событие, которое нужно обработать. В нашем случае объект называется «Layout1», а событие, которое мы отслеживаем, «OnLoad». Его необходимо выделить. В правой панели параметров выберем первую кнопку OptionButton1 и ее свойство Value. Чтобы с момента загрузки эта кнопка была отмечена, зададим значение Value равным True, что соответствует помеченной кнопке. Для этого нажмите кнопку Insert Action, чтобы обработчик был сгенерирован, а затем нажмите кнопку Modify Value и введите значение True. Далее проделаем то же самое для кнопки OptionButton2, но установим ее значение Value в False. Для изменения цвета в процессе использования страницы, необходимо создать два обработчика событий Click кнопок OptionButton1 и OptionButton2, которые меняют цвет фона «Label» на желтый и зеленый соответственно. В правой панели параметров выберем первую кнопку элемент «Label» и его свойство BackColor и установим для каждой из кнопок соответствующее значение цвета. Сохраняем форму и вставляем ее в HTML-форму выполнив «Edit-Insert HTML Layout…».

Обратите внимание: Script Wizard можно использовать в двух режимах: вид дерева объектов и вид кода. В каждом отдельном случае вы можете выбрать любой из них, который более подходит для решения задачи.

Рассмотрим использование компонентов ActiveX имеющихся на компьютере – например компонент «Windows Media Player» выполнив «Edit-Insert Activex Control…». Выбираем компонент. Вставленную часть кода, а именно:

 

<OBJECT ID="WindowsMediaPlayer1"

CLASSID="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" STYLE="TOP:0pt;LEFT:140pt;WIDTH:256pt;HEIGHT:215pt;ZINDEX:1;">

   <PARAM NAME="URL" VALUE="">

   <PARAM NAME="rate" VALUE="1">

   <PARAM NAME="balance" VALUE="0">

   <PARAM NAME="currentPosition" VALUE="0">

   <PARAM NAME="defaultFrame" VALUE="">

   <PARAM NAME="playCount" VALUE="1">

   <PARAM NAME="autoStart" VALUE="-1">

   <PARAM NAME="currentMarker" VALUE="0">

   <PARAM NAME="invokeURLs" VALUE="-1">

   <PARAM NAME="baseURL" VALUE="">

   <PARAM NAME="volume" VALUE="50">

   <PARAM NAME="mute" VALUE="0">

   <PARAM NAME="uiMode" VALUE="full">

   <PARAM NAME="stretchToFit" VALUE="-1">

   <PARAM NAME="windowlessVideo" VALUE="-1">

   <PARAM NAME="enabled" VALUE="-1">

   <PARAM NAME="enableContextMenu" VALUE="-1">

   <PARAM NAME="fullScreen" VALUE="0">

   <PARAM NAME="SAMIStyle" VALUE="">

   <PARAM NAME="SAMILang" VALUE="">

   <PARAM NAME="SAMIFilename" VALUE="">

   <PARAM NAME="captioningID" VALUE="">

   <PARAM NAME="enableErrorDialogs" VALUE="0">

   <PARAM NAME="_cx" VALUE="9022">

   <PARAM NAME="_cy" VALUE="7567">

</OBJECT>

 

вырезаем из формы и вставляем в файл «Layout1.alx» в котором была сохранена экранная форма с компонентами «Label» и «OptionButton». Удаляем компоненты «OptionButton», а вместо них размещаем один компонент «CommandButton». Сохраняем форму и далее открываем ее в блокноте. Заменяем метод выполняемый при нажатии на кнопку, для проигрывания файла «Clock.avi» следующим образом:

 

 

<SCRIPT LANGUAGE="VBScript">

<!--

Sub CommandButton1_Click()

WindowsMediaPlayer1.URL = "c:\clock.avi"

end sub

-->

</SCRIPT>

<DIV ID="Layout1" STYLE="LAYOUT:FIXED;WIDTH:564pt;HEIGHT:446pt;">

<OBJECT ID="CommandButton1"

CLASSID="CLSID:D7053240-CE69-11CD-A777-00DD01143C57" STYLE="TOP:231pt;LEFT:140pt;WIDTH:256pt;HEIGHT:58pt;TABINDEX:0;ZINDEX:0;">

   <PARAM NAME="Caption" VALUE="CommandButton1">

   <PARAM NAME="Size" VALUE="9031;2046">

   <PARAM NAME="FontCharSet" VALUE="0">

   <PARAM NAME="FontPitchAndFamily" VALUE="2">

   <PARAM NAME="ParagraphAlign" VALUE="3">

</OBJECT>

<OBJECT ID="WindowsMediaPlayer1"

CLASSID="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" STYLE="TOP:0pt;LEFT:140pt;WIDTH:256pt;HEIGHT:215pt;ZINDEX:1;">

   <PARAM NAME="URL" VALUE="">

   <PARAM NAME="rate" VALUE="1">

   <PARAM NAME="balance" VALUE="0">

   <PARAM NAME="currentPosition" VALUE="0">

   <PARAM NAME="defaultFrame" VALUE="">

   <PARAM NAME="playCount" VALUE="1">

   <PARAM NAME="autoStart" VALUE="-1">

   <PARAM NAME="currentMarker" VALUE="0">

   <PARAM NAME="invokeURLs" VALUE="-1">

   <PARAM NAME="baseURL" VALUE="">

   <PARAM NAME="volume" VALUE="50">

   <PARAM NAME="mute" VALUE="0">

   <PARAM NAME="uiMode" VALUE="full">

   <PARAM NAME="stretchToFit" VALUE="-1">

   <PARAM NAME="windowlessVideo" VALUE="-1">

   <PARAM NAME="enabled" VALUE="-1">

   <PARAM NAME="enableContextMenu" VALUE="-1">

   <PARAM NAME="fullScreen" VALUE="0">

   <PARAM NAME="SAMIStyle" VALUE="">

   <PARAM NAME="SAMILang" VALUE="">

   <PARAM NAME="SAMIFilename" VALUE="">

   <PARAM NAME="captioningID" VALUE="">

   <PARAM NAME="enableErrorDialogs" VALUE="0">

   <PARAM NAME="_cx" VALUE="9022">

   <PARAM NAME="_cy" VALUE="7567">

</OBJECT>

</DIV>

 

Вставляем полученную раскладку в Web-страницу выполнив команду Edit-Insert HTML Layout.

 

 

Лабораторная работа №3«Доступ к базам данных»

 


Дата добавления: 2018-02-18; просмотров: 632; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!