Процедуры и функции VBScript. Установка свойств для элементов управления и объектов. События Initialize и Terminate
Dynamik HTML
© Питер, 2000
Обработка массивов
Dim
--
объявляет
переменную-массив. Она может быть
статической с постоянным
количеством элементов или
динамической и может иметь до 60
измерений.
ReDim
--
используется
для изменения размера переменной-массива,
объявленной как динамическая.
Preserve
--
ключевое
слово, используемое для сохранения
содержимого массива при изменении
его размера. Если вы используете
это слово, вы можете изменять лишь
элементы, находящиеся справа.
Dim strEmpl ()
ReDim strEmlp (9 , 1)
strEmpl (9 , 1) = "Phil"
ReDim strEmpl (9 , 2) " теряем
содержимое элемента (9 , 1)
strEmpl (9 , 2) = "Paul"
ReDim Preserve strEmpl (9 , 3) "
сохраняем содержимое элемента (9 , 2)
strEmpl (9 , 2) = "Smith"
LBound
--
возвращает
наименьший индех для данного
массива. Учитывая, что массивы
всегда начинаются с нулевого
элемента, данная функция всегда
будет возвращать ноль.
UBound
--
используется
для задания размера массива.
Dim strCustom (10,5)
intSizeFirst = UBound (strCustom , 1) " присваиваем
значение 10 переменной SizeFirst
intSizeSecond = UBound (strCustom , 2) " присваиваем
значение 5 переменной SizeSecond
Операторы присваивания
Let
--
используется для присваивания
переменной значения (необязателен)
Set
--
используется для присваивания
переменной ссылки на объект.
Let intNumberOf Days = 365
Let txtTextBox = txtControl
txtTextBox.Value = "Привет Всем!"
Управляющие операнды
For ... Next - выполняет часть кода заданное число раз.
For counter = 1 to 12 result = 5 * counter MsgBox counter & " пять раз будет " & result Next counterFor Each ... Next Statement - выполняет часть кода для всех элементов массива или коллекции.
For Each Item In Request.QueryString("MyControl") Response.Write Item & "" Next
Do ... Loop - выполняет часть кода до тех пор, пока условие выполняется, или до тех пор, пока оно не станет выполнятся (в зависимости от конструкции).
password = InputBox("Введите ваш пароль") Do Until possword = "No Pasaran" MsgBox "Неправильно введенный пароль. Попробуйте еще раз!" password = InputBox("Введите ваш пароль") Loop или... Do MsgBox ("Вставай, пора работать!") ... Loop Until strDayOfWeek = "Суббота" Or strDayOfWeek = "Воскресенье" или... Do While strDayOfWeek <> "Суббота" And strDayOfWeek <> "Воскресенье" MsgBox ("Вставай, пора работать!") ... LoopIf ... Then ... Else - используется для запуска различных блоков кода при выполнении различных условий.
If AmountPurchased >10000 Then DiscountAmount = AmountPurchased * .10 Subtotal=AmountPurchased - DiscountAmount Else HandlingFee = AmountPurchased * .3 Subtotal=AmountPurchased + HandlingFee End IfSelect Case - используется для замены оператора If ... Then ... Else при большом количестве условий.
Select Case Document.frmOrder.txtState.Value Case "California" ShippingFee = .04 Case "Florida" ShippingFee = .03 Case Else ShippingFee = .02 End SelectWhile ... WEnd - выполняет блок кода, пока выполняется условие.
While strDayOfWeek <> "Суббота" And strDayOfWeek <> "Воскресенье" MsgBox ("Вставай, пора работать!") ... WEndОбъявление переменных
Dim -- объявляет переменную.
Обработка ошибок
On Error Resume Next
-
указывает, что при появлении ошибки
необходимо ее игнорировать и
начать дальнейшую обработку кода
со следующей строки.
Err
- объект error
, содержащий
информацию об ошибках выполнения.
Возможности для обработки ошибок в VBScript ограничены, и для выяснения, произошла ли ошибка, необходимо явно проверять объект Err .
Операции ввода-вывода
Для вывода сообщений служит конструкция MsgBox , для ввода - InputBox .
MsgBox
Она выдает сообщение и может
возвращать значение, показывающее,
какая кнопка нажата.
MsgBox "Hello There", 35, "Hello
Message"
Параметры:
"Hello There"
--
содержит текст сообщения. Это
обязательный параметр.
35
--
указывает, какие картинка и кнопки
появятся в окне сообщения.
"Hello Message"
--
текст заголовка окна сообщения.
Если добавить путь к файлу справки (например: "\win\help\MyHelp.hlp"), то в окне появится кнопка Help и определяется, какой файл справки будет вызван при ее нажатии.
Значения пареметра, определяющего картинку и кнопки:
Константа | Значение | Кнопки |
vbOkOnly | 0 | Ок |
vbOkCancel | 1 | Ок & Cancel |
vbAbortRetryIgnore | 2 | Abort & Retry & Ignore |
vbYesNoCancel | 3 | Yes & No & Cancel |
vbYesNo | 4 | Yes & No |
vbRetryCancel | 5 | Retry & Cancel |
vbDefaultButton1 | 0 | По умолчанию активна первая кнопка слева |
vbDefaultButton2 | 256 | По умолчанию активна вторая кнопка слева |
vbDefaultButton3 | 512 | По умолчанию активна третья кнопка слева |
vbDefaultButton4 | 768 | По умолчанию активна четвертая кнопка слева |
Константа | Значение | Описание (картинка) |
vbCritical | 16 | Важное сообщение |
vbQuestion | 32 | Вопрос |
vbExclamation | 48 | Предупреждение |
vbInformation | 64 | Информационное сообщение |
Константа | Значение | Описание |
vbApplicationModal | 0 | Пока пользователь не нажмет кнопку, работа приложения останавливается. |
vbSystemModal | 4096 | Пока пользователь не нажмет кнопку, останавливается работа всей системы. |
Для задания конкретной картинки и кнопок необходимо сложить соответствующие величины. Так, в примере сложили 32+3 для изображения кнопок Да, Нет и Отмена, где Да - активна по умолчанию, и картинка вопроса.
Можно определить, какая кнопка нажат, присвоив значение, возвращенное функцией MsgBox переменной:
intButtonClicked = MsgBox ("Hello There", 35, "Hello Message")
Заметим, что при использовании такой инструкции параметры функции заключены в скобки. В следующей таблице показаны значения, присваемые при этом переменной intButtonClicked .
Константа | Значение | Нажатая кнопка |
vbOk | 1 | Ok (О`кей) |
vbCancel | 2 | Cancel (Отмена) |
vbAbort | 3 | Abort (Стоп) |
vbRetry | 4 | Retry (Повтор) |
vbIgnore | 5 | Ignore (Пропустить) |
vbYes | 6 | Yes (Да) |
vbNo | 7 | No (Нет) |
InputBox
Воспринимает текстовую запись
пользователя и передает ее коду как
строку.
strEntered=InputBox ("Введите
ваше имя, пожалуйста", "Login",
"Джон Смит", 500, 500)
MsgBox "Hello There" & strEntered, 35, "Hello
Message"
"Введите ваше имя,
пожалуйста"
- строка,
показываемая в окне ввода.
"Login"
-
сообщение в заголовке.
"Джон Смит"
- значение,
определенное по умолчанию для поля
ввода.
500
- определяет координату по
горизонтали окна ввода.
500
- определяет координату по
вертикали окна ввода.
Аналогично можно задать файл подсказки и кнопку для его вызова.
Процедуры
Call
-
необязательный метод для вызова
подпрограммы.
Function
- используется
для объявления функции.
Sub
- используется
для объявления подпрограммы.
В данном примере инструкция Function используется для объявления имени, аргументов и кода, составляющих основу процедуры Function.
" Следующая функция, определенная пользователем, возвращает " квадратный корень из переданного ей аргумента. Function CalculateSquareRoot(NumberArg As Double) As Double If NumberArgВ данном примере инструкция Sub используется для описания имени, аргументов и кода, составляющих основу процедуры Sub.
" Описание процедуры Sub. " Процедура Sub с двумя аргументами. Sub SubComputeArea(Length, TheWidth) Dim Area As Double " Объявляет локальную переменную. If Length = 0 Or TheWidth = 0 Then " Если хотя бы один из аргументов равен 0. Exit Sub " Немедленно завершает процедуру Sub. End If Area = Length * TheWidth " Вычисляет площадь прямоугольника. Debug.Print Area " Выводит полученное значение в окно отладки. End SubДругие ключевые слова
Rem
- старый метод
для добавления комментариев в код.
Option Explicit
-
заставляет объявлять переменную до
того, как она может быть
использована.
А так же на страницах
сайта можно прочесть о VBScript:
Константы | Учебник
по VBScript | Функции |
Коды ошибок выполнения
На
главную
|
Процедура sub выполняет последовательность действий, но не возвращает никакого, значения, ассоциированного с ее именем. Она имеет следующий синтаксис:
sub имя_процедуры ([список-параметров])
операторы
Через необязательный параметр можно передать в процедуру внешние данные или, наоборот, получить некоторые вычисленные ею значения.
Вызов процедуры sub осуществляется оператором call, после которого указывается имя процедуры и в круглых скобках параметры. Процедуру можно вызвать и простым указанием ее имени, но в этом случае передаваемые ей параметры задаются без скобок. Следующие два способа вызова процедуры эквивалентны:
call MyProc(firstarg, secondarg)
MyProc firstarg, secondarg
Функция также выполняет определенную последовательность операторов и ей можно передать внешние данные через параметры процедуры, но, в отличие от процедуры sub, она возвращает значение, присваиваемое ее имени, и может быть использована в выражениях VBScript. Она имеет следующий синтаксис:
function имя_процедуры ([список-параметров])
операторы
имя_процедуры = значение
В операторах процедуры обязательно должен присутствовать оператор присвоения имени процедуры некоторого значения.
VBScript предоставляет два способа передачи параметров в процедуру:
По значению
Способ передачи параметров по ссылке, применяемый по умолчанию, передает фактический адрес переменной, используемой в качестве параметра. Это позволяет изменить содержимое соответствующего адреса памяти, а тем самым, и значение переменной.
Передача параметров по значению предполагает передачу в процедуру копии переменной, а не адреса самой переменной. Поэтому любые изменения параметра внутри процедуры воздействуют на копию, а не на саму переменную, и, следовательно, значение переменной, переданной в качестве параметра, изменяться не будет. Для указания интерпретатору, что параметр передается в процедуру по значению, используется ключевое слово ByVal, задаваемое перед параметром в описании процедуры.
6 Объекты
6.1 JavaScript
На самом верхнем уровне иерархии находится объект window, представляющий окно браузера и являющийся “родителем” всех остальных объектов. Расположенные ниже в иерархии объекты могут иметь свои подчиненные объекты.
Особняком стоит объект navigator с двумя дочерними (подчиненными) объектами. Он относится к самому браузеру, и его свойства позволяют определить характеристики программы просмотра.
Каждая страница в добавление к объекту navigator обязательно имеет еще четыре объекта:
window – объект верхнего уровня, свойства которого применяются ко всему окну, в котором отображается документ.
document – свойства которого определяются содержимым самого документа: связи, цвет фона, формы и т.д.
location – свойства которого связаны с URL-адресом отображаемого документа.
history – представляет адреса ранее загружавшихся HTML-страниц.
Кроме указанных объектов страница может иметь дополнительные объекты, зависящие от ее содержимого, которые являются дочерними объектами объекта document. Если на страницы расположена форма, то все ее элементы являются дочерними объектами этой формы. Для задания точного имени объекта используется точечная нотация с полным указанием всей цепочки наследования объекта. Это возможно, так как объект верхнего уровня имеет свойство, значением которого является объект нижнего уровня. Ссылка на объект осуществляется по имени, заданному параметром NAME тэга HTML.