» Изучение
VBScript
» Главная
страница
»
VBScript
- оглавление
Объект
Объект
(Object) - это простой объект,
методами, свойствами и событиями
которого вы можете управлять.
Метод - это процедура или просто
набор команд, сообщающих объекту,
что нужно выполнить некоторую
задачу. Свойство - это некоторый
вид параметра объекта. Событие
- это сигнал, подаваемый, если
с объектом что-то происходит.
И методы, и свойства, и события
разработчик выбирает сам, исходя
из потребностей задачи. Так,
если в вашей программе нужно
отследить время окончания работы,
то имеет смысл обращать внимание
на событие, сигнализирующее
об этом. В противном случае
эта информация бесполезна.
Объектная
модель
Рассмотрим
объект ActiveX Label (объект
и элемент управления для VBScript
фактически означают одно и то
же). Он состоит из свойств и
имеет один метод. Некоторые
из его свойств включают заголовок
(Caption), цвет фона (BackColor),
цвет шрифта (ForeColor), размер
(FontSize) и стиль шрифта (FontName).
Его методом является About Box,
отображающий при вызове окно
с информацией об ActiveX. Событием
для Label является перемещение
указателя мыши над Label. Существует
специальный тег <OBJECT>
для вставки объектов в HTML-страницу.
В его синтаксисе используются
два тега: <OBJECT> и <PARAM>.
Первый - для определения используемого
объекта, а также других главных
параметров, связанных с объектом;
второй - для установки разных
свойств объекта, определенного
тегом <OBJECT>, во вложенных
тегах <PARAM>.
Атрибуты
тэега <OBJECT>.
Атрибут
|
Назначение
|
ID
|
Определяет
имя объекта в документе
|
CLASSID
|
Класс,
к которому принадлежит
объект; может быть
уникальным универсальным
идентификатором
или другой группой
классов типа Java.
Для элементов управления
ActiveX - это идентификационный
номер класса в системном
реестре вашей системы
|
DATA
|
Адрес,
откуда объект должен
получать данные;
может включать данные
для определения
всех свойств классов
|
CODEBASE
|
Адрес,
где находится код
объекта
|
TYPE
|
Тип
Internet MIME (например:
application/x-oleobject
будет определять
OLE-объект, который
должен использоваться
как код)
|
HEIGHT
|
Высота
границы объекта
|
WIDTH
|
Ширина
границы объекта
|
Атрибуты
тега <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.
В ней есть окно, позволяющее
корректировать свойства любого
элемента управления.
Использование
объектов
Теперь
вы знаете, что для включения
объектов в 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 с разными
событиями и элементами управления
на вашей страничке. Таким образом,
вы можете больше внимания обращать
на сам процесс разработки приложения.
Следующий
урок
|