Чтобы вызвать подпрограмму из вашего сценария, используйте следующий синтаксис:
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>