Visual Basic + HTML = VBScript

       

Вызов методов


Чтобы вызвать подпрограмму из вашего сценария, используйте следующий синтаксис:

call ProcedureName(arguments)

ProcedureName - это имя подпрограммы, которую вы вызываете; arguments - значения, передающиеся в процедуру. Как было сказано ранее, подпрограммы используются, когда требуется обработать какое-то событие, например:

<SCRIPT> ... sub MyObject_Click() alert "This is a subroutine which is called _ when the Click event happens for the MyObject object." end sub ... </SCRIPT>

В нашем случае это Click, т. е. пользователь должен щелкнуть мышкой на этом объекте. Это не будет работать для функции, потому что функция - это процедура, возвращающая значение. Что касается функций, то они сами могут быть возвращены как значение, например:

<SCRIPT> ... y = 2 x = GiveValue(y) alert x ... function GiveValue(a) GiveValue = a + 4 end function ... </SCRIPT>

Следующий пример иллюстрирует вызовы подпрограммы и функции из сценария:

<HTML> <HEAD> <TITLE>Документ HTML, использующий элементы управления ActiveX и процедуры </TITLE> </HEAD> <BODY BGCOLOR="mistyrose"> <OBJECT ID="IeLabel1" WIDTH=170 HEIGHT=93 CLASSID="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"> <PARAM NAME="_ExtentX" VALUE="3625"> <PARAM NAME="_ExtentY" VALUE="2461"> <PARAM NAME="Caption" VALUE="Click Me"> <PARAM NAME="Angle" VALUE="0"> <PARAM NAME="Alignment" VALUE="4"> <PARAM NAME="Mode" VALUE="1"> <PARAM NAME="FillStyle" VALUE="0"> <PARAM NAME="FillStyle" VALUE="1"> <PARAM NAME="ForeColor" VALUE="#FF0000"> <PARAM NAME="BackColor" VALUE="#373737"> <PARAM NAME="BackStyle" VALUE="1"> <PARAM NAME="FontName" VALUE="Courier"> <PARAM NAME="FontSize" VALUE="24"> <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><BR CLEAR="ALL"> <INPUT TYPE="button" NAME="button1" VALUE="Get Value"> Enter Angle: <INPUT TYPE="text" NAME="AngleInpt" VALUE="0" SIZE="10" MAXLENGTH="10"> The Sine is: <INPUT TYPE="text" NAME="SineInpt" VALUE="0" SIZE="10" MAXLENGTH="10"> <SCRIPT LANGUAGE="VBScript"> dim pi pi = 4 * atn(1.0) sub button1_OnClick dim angle, sinangle angle = AngleInpt.value sinangle = getsin(angle) SineInpt.value = sinangle end sub function getsin(angle) getsin = sin((pi * angle)/180) end function sub ieLabel1_Click call ieLabel1.AboutBox end sub </SCRIPT> </BODY> </HTML>


Когда пользователь щелкает мышью по метке Label, то вызывается метод About Box. Поля ввода используются для вычисления синуса заданного угла (в градусах). Если ввести некоторое значение в первое поле ввода, помеченное текстом "Enter Angle", и щелкнуть на кнопке мышью, то введенный аргумент будет переведен в радианы и затем вычислен синус, результат чего будет отображен. Первая процедура вызывается по нажатию мышью на единственный объект на странице - кнопку, называемую button1. Когда это событие обрабатывается, то вызывается сразу несколько методов. Сначала обновляются все переменные, которые вы собираетесь использовать для вашей программы. Затем отыскивается значение, называемое AngleInpt, которое пользователь набрал в поле ввода. Далее вызывается функция, в которую заносится введенный параметр из поля AngleInpt. Она преобразует угловые градусы в радианы, затем вычисляет его синус (радианы являются основной мерой измерения углов для тригонометрических функций в VBScript). Значение связывается с именем функции (getsin), которая возвращает его для определенной нами ранее переменной. В итоге это значение отображается в текстовом поле, называемом SineInpt.

В данном примере задействовано два метода: подпрограмма button1_OnClick, которая, если вы помните, вызывается, когда пользователь щелкает мышью по кнопке, и функция getsin(angle), где angle - параметр, используемый для преобразования градусов в радианы. У элемента ActiveX Label используются два включаемых метода (методами называются собственные подпрограммы и функции объекта): тот, который вызывается, когда по метке щелкнули мышкой (ieLabel1_Click), и метод отображения диалоговой панели ieLabel.AboutBox(). Когда обращаются к методам объектов, обычно используют следующий синтаксис:

call ObjectName.MethodName()

Ключевое слово call применяется для вызова определенного метода. ObjectName - это имя объекта, для которого вы хотели бы вызвать метод, а MethodName() - это имя метода, который будет использовать сам объект. Имя объекта и вызываемый метод отделяются точкой. Также для вызова метода не требуется никаких скобок, потому что у него нет никаких параметров.


Содержание раздела