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

Объектная модель

Рассмотрим объект ActiveX Label (объект и элемент управления для VBScript фактически означают одно и то же). Он состоит из свойств и имеет один метод. Некоторые из его свойств включают заголовок (Caption), цвет фона (BackColor), цвет шрифта (ForeColor), размер (FontSize) и стиль шрифта (FontName). Его методом является About Box, отображающий при вызове окно с информацией об ActiveX. Событием для Label является перемещение указателя мыши над Label. Существует специальный тег <OBJECT> для вставки объектов в HTML-страницу. В его синтаксисе используются два тега: <OBJECT> и <PARAM>. Первый - для определения используемого объекта, а также других главных параметров, связанных с объектом; второй - для установки разных свойств объекта, определенного тегом <OBJECT>, во вложенных тегах <PARAM>. Атрибуты тега <OBJECT> перечислены в табл. 1, а тэга <PARAM> - в табл. 2.

Таблица 1.
Атрибуты тэега <OBJECT>.

Атрибут Назначение
ID Определяет имя объекта в документе
CLASSID Класс, к которому принадлежит объект; может быть уникальным универсальным идентификатором или другой группой классов типа Java. Для элементов управления ActiveX - это идентификационный номер класса в системном реестре вашей системы
DATA Адрес, откуда объект должен получать данные; может включать данные для определения всех свойств классов
CODEBASE Адрес, где находится код объекта
TYPE Тип Internet MIME (например: application/x-oleobject будет определять OLE-объект, который должен использоваться как код)
HEIGHT Высота границы объекта
WIDTH Ширина границы объекта

Таблица 2.
Атрибуты тега <PARAM>.

Атрибут Назначение
NAME Определяет имя объекта, которое должно использоваться
VALUE Определяет значение, которое должно быть присвоено свойству объекта, определенному в NAME

Теперь посмотрим на исходный текст, приведенный в примере для элемента управления - Label.

<HTML> 
<HEAD> 
<TITLE>Пример, демонстрирующий объект ActiveX</TITLE> 
</HEAD> 
<BODY BGCOLOR="steelblue"> 
<OBJECT ID="mylabel" WIDTH="100" HEIGHT="51" 
CLASSID="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"> 
<PARAM NAME="_ExtentX" VALUE="2646"> 
<PARAM NAME="_ExtentY" VALUE="1349"> 
<PARAM NAME="Caption" VALUE="This is label 1"> 
<PARAM NAME="Angle" VALUE="0"> 
<PARAM NAME="Alignment" VALUE="4"> 
<PARAM NAME="Mode" VALUE="1"> 
<PARAM NAME="FillStyle" VALUE="0"> 
<PARAM NAME="FillStyle" VALUE="0"> 
<PARAM NAME="ForeColor" VALUE="#000000"> 
<PARAM NAME="BackColor" VALUE="#C0C0C0"> 
<PARAM NAME="FontName" VALUE="Arial"> 
<PARAM NAME="FontSize" VALUE="12"> 
<PARAM NAME="FontItalic" VALUE="0"> 
<PARAM NAME="FontBold" VALUE="0"> 
<PARAM NAME="FontUnderline" VALUE="0"> 
<PARAM NAME="FontStrikeout" VALUE="0"> 
<PARAM NAME="TopPoints" VALUE="0"> 
<PARAM NAME="BotPoints" VALUE="0"> 
</OBJECT> 
</BODY> 
</HTML>

Для тега <OBJECT> определено несколько параметров, которые предоставляют полезную информацию относительно используемого объекта. Сначала определяется имя объекта "mylabel", затем свойства: ширина и высота. Далее элемент управления идентифицируется параметром "CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2" точно так, как он обозначается в системном реестре вашей операционной системы. Вложенные тэги <PARAM> содержат свойства объекта Label. Атрибут NAME используется, чтобы определить, какое свойство должно использоваться, а VALUE - для связи значения с этим свойством. Весь этот процесс автоматизирует программа ActiveX Control Pad. В ней есть окно, позволяющее корректировать свойства любого элемента управления (см. статью "Размещение ActiveX на страницах Web", "Мир ПК", # 2/97, с. 51).

Использование объектов

Теперь вы знаете, что для включения объектов в HTML-документ нужно использовать пару тегов <OBJECT></OBJECT>, а для установки значений его свойств - тег <PARAM>. Если вы имели дело с программированием на Visual Basic, то использование тегов <PARAM> будет напоминать вам размещение какого-либо компонента или элемента управления на форме. Например, следующие значения тегов <OBJECT> и <PARAM> добавляют на страничку (вместо формы в Visual Basic) элемент ActiveX Label:

<OBJECT
 classid="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"
 id=lblActiveLbl
 width=250
 height=250
 align=left
 hspace=20
  vspace=0>
<PARAM NAME="Angle" VALUE="90">
<PARAM NAME="Alignment" VALUE="2">
<PARAM NAME="BackStyle" VALUE="0">
<PARAM NAME="Caption" 
VALUE="A Simple Desultory Label">
<PARAM NAME="FontName" VALUE="Arial">
<PARAM NAME="FontSize" VALUE="20">
<PARAM NAME="FontBold" VALUE="1">
<PARAM NAME="FrColor" VALUE="0">
</OBJECT>

Вы можете присваивать или устанавливать свойства, а также вызывать методы точно так же, как с любым средством управления формой. Следующий текст, например, включает элементы <FORM>, которые могут использоваться для управления свойствами двух элементов Label:

<FORM NAME="LabelControls">
<INPUT TYPE="TEXT" NAME="txtNewText" SIZE=25>
<INPUT TYPE="BUTTON" NAME="cmdChangeIt" 
VALUE="Change Text">
<INPUT TYPE="BUTTON" NAME="cmdRotate" 
VALUE="Rotate Label">
</FORM>

Обработчик события нажатия кнопки cmdChangeIt изменяет текст объекта Label:

<SCRIPT LANGUAGE="VBScript">
<!-
Sub cmdChangeIt_onClick
   Dim TheForm
   Set TheForm = Document.LabelControls
   lblActiveLbl.Caption = TheForm.txtNewText.Value
End Sub
->
</SCRIPT>

Некоторые теги (прежде всего для управления вводом информации в форму) и элементы ActiveX могут обращаться к отдельным процедурам вашего сценария (скрипта), запускаемого событием. События могут вызываться из тегов <A>, <BODY>, <INPUT> и <OBJECT>. В примере, который приводится ниже, при нажатии кнопки изменяется текст объекта Label:

<HTML> 
<HEAD> 
<TITLE>Использование объектов с событиями</TITLE> 
</HEAD> 
<BODY BGCOLOR="slateblue"><BR> 
<CENTER> 
<OBJECT ID="MyLabel" WIDTH=215 HEIGHT=93 
CLASSID="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"> 
<PARAM NAME="_ExtentX" VALUE="5689"> 
<PARAM NAME="_ExtentY" VALUE="2461"> 
<PARAM NAME="Caption" VALUE="Watch me change!!"> 
<PARAM NAME="Angle" VALUE="0"> 
<PARAM NAME="Alignment" VALUE="4"> 
<PARAM NAME="BackStyle" VALUE="1"> 
<PARAM NAME="Mode" VALUE="1"> 
<PARAM NAME="FillStyle" VALUE="0"> 
<PARAM NAME="FillStyle" VALUE="1"> 
<PARAM NAME="ForeColor" VALUE="#00FF00"> 
<PARAM NAME="BackColor" VALUE="#DDAADD"> 
<PARAM NAME="FontName" VALUE="Times"> 
<PARAM NAME="FontSize" VALUE="12"> 
<PARAM NAME="FontItalic" VALUE="0"> 
<PARAM NAME="FontBold" VALUE="0"> 
<PARAM NAME="FontUnderline" VALUE="0"> 
<PARAM NAME="FontStrikeout" VALUE="0"> 
<PARAM NAME="TopPoints" VALUE="0"> 
<PARAM NAME="BotPoints" VALUE="0"> 
</OBJECT></CENTER><BR><BR><CENTER> 
<INPUT TYPE="button" value="click ME to change" 
onclick="changes" Language="VBScript"></CENTER> 
<SCRIPT> 
sub changes 
MyLabel.Caption="See. . . I TOLD YOU!" 
MyLabel.ForeColor = "6316128" 
MyLabel.BackColor = "167111680" 
MyLabel.FontName = "Arial" 
end sub 
sub MyLabel_Click 
MyLabel.Caption="Watch me change!!" 
MyLabel.ForeColor = "65280" 
MyLabel.BackColor = "14527197" 
MyLabel.FontName = "Times" 
end sub 
</SCRIPT> 
</BODY> 
</HTML>

В этом примере, помимо объекта Label, добавлены некоторые возможности сценария и несколько событий. Во-первых, определяется элемент управления Label, затем с помощью тега <INPUT> добавляется элемент управления Button. Когда пользователь нажимает на кнопку, то текст Label изменяется. При повторном нажатии кнопки возвращается прежний текст. Оба эти действия являются событиями. Когда пользователь нажимает на кнопку, возникает событие, заставляющее метку изменяться. Атрибут OnClick в теге <INPUT> используется для того, чтобы вызвать событие. Сам по себе атрибут OnClick является событием, и его значение вызывает процедуру VBScript, которая заставляет метку изменяться. Прежний текст возвращается с помощью сценария, имеющего две процедуры. Первая используется элементом Button (кнопка), а вторая - Label (метка), если пришло время вернуть ее старое содержание. Как вы заметили, во второй процедуре имя объекта Label (MyLabel) сопровождается подчеркиванием, после которого стоит имя события (MyLabel_Click). Это означает, что когда происходит событие OnClick для названного объекта, то должны выполняться последовательности операций, перечисленные в этой процедуре.

При интенсивном программировании лучше всего использовать программу Microsoft ActiveX Control Pad, великолепно выполняющую связывание команд Visual Basic с разными событиями и элементами управления на вашей страничке. Таким образом, вы можете больше внимания обращать на сам процесс разработки приложения.