Скрипты для Virgo [Baum Retec AG] (doc) читать постранично, страница - 2

Книга в формате doc! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

использовать во всех процедурах скрипта. Внутри процедуры Dim используется для объявления локальной переменной, доступной только для этой процедуры.
Dim ПЕРЕМЕННАЯ(РАЗМЕР), ПЕРЕМЕННАЯ(РАЗМЕР),…
Примеры:
DIM WName ' Имя окна
DIM WLeft,WTop ' Координаты окна
DIM WWidth ' Ширина окна
DIM WHeight ' Высота окна

1.4.4. Оператор Const

Используется для объявления константы, которую можно будет использовать во всех процедурах скрипта.
Const КОНСТАНТА=КОНСТАНТНОЕ ВЫРАЖЕНИЕ
Примеры:
Const DE = "1031"
Const RU = "1049"
Const xlEdgeLeft = 7
Const xlEdgeTop = 8
Const xlEdgeRight = 10
Const xlEdgeBottom = 9
Существуют также встроенные константы, например, True (Истина) и False (Ложь).

1.4.5. Оператор Set

Присваивает переменной ссылку на тот или иной объект.
Set ПЕРЕМЕННАЯ = ОБЪЕКТ
Примеры:
Set MOM = proc.GetMoFromFocus
Set ACol = ACh.ForeGroundColor
Set Char = ASE.GetAccCharacterFromIndex(1)

1.4.6. Условный оператор If

Используется для выполнения той или другой группы операторов в зависимости от значений условных выражений.
If УСЛОВИЕ_1 Then ' Если УСЛОВИЕ_1 истинно, то
БЛОК_ОПЕРАТОРОВ_1 ' выполняется БЛОК_ОПЕРАТОРОВ_1
ElseIf УСЛОВИЕ_2 Then ' Если УСЛОВИЕ_2 истинно, то
БЛОК_ОПЕРАТОРОВ_2 ' выполняется БЛОК_ОПЕРАТОРОВ_2
…..
Else ' иначе, если все условия ложны
БЛОК_ОПЕРАТОРОВ_ПО_УМОЛЧАНИЮ ' выполняется
' БЛОК_ОПЕРАТОРОВ_ПО_УМОЛЧАНИЮ
End If

Пример:
If FindTopLevelWin("NameListWndClass") = 0 Then
NameListActive = FALSE
proc.Lst_Key = "+Down"
proc.AddToCmdQueue("GOFOCUS")
Else
E.SyncHere = FALSE
End If

1.4.7. Оператор выбора Select Case

Этот оператор используется вместо последовательности операторов If.
Select Case ВЫРАЖЕНИЕ ' Вычисляется значение ВЫРАЖЕНИЯ
Case УСЛОВИЕ_1 ' Если вычисленное значение удовлетворяет данному условию,
БЛОК_ОПЕРАТОРОВ_1 ' то выполняется данный блок операторов и т.д.
Case УСЛОВИЕ_2
БЛОК_ОПЕРАТОРОВ_2
…….
Case УСЛОВИЕ_n
БЛОК_ОПЕРАТОРОВ_n
Case Else ' В противном случае выполняется
БЛОК_ОПЕРАТОРОВ_ПО_УМОЛЧАНИЮ ' данный блок операторов
End Select

Запись Case УСЛОВИЯ может иметь одну из трех форм:
1) Case КОНСТАНТА_1, КОНСТАНТА_2, КОНСТАНТА_3…
2) Case Is ЗНАК_ОТНОШЕНИЯ КОНСТАНТА
3) Case КОНСТАНТА_1 To КОНСТАНТА_2

Пример:

Select Case L
Case 3,5
Proc.SpeechOut "Три или пять"
Proc.BrailleOut "Три или пять"
Case Is > 5
Proc.SpeechOut "Больше пяти"
Proc.BrailleOut "Больше пяти"
Case –5 To 2
Proc.SpeechOut "От минус пяти до двух"
Proc.BrailleOut "От минус пяти до двух"
Case Else
Proc.SpeechOut "Ни одно из условий не выполнено"
Proc.BrailleOut "Ни одно из условий не выполнено"
End Select

Если ни одно из условий не выполнено, а ветви Case Else нет, выполнение программы может привести к непредсказуемым последствиям. Если значения ВЫРАЖЕНИЯ удовлетворяет сразу нескольким Case УСЛОВИЯМ, будет выполнено то из них, которое стоит ближе к началу оператора Select Case.

1.4.8. Оператор цикла For…Next

Этот оператор позволяет выполнить БЛОК_ОПЕРАТОРОВ определенное число раз.
For СЧЕТЧИК=X To Y Step Z
БЛОК_ОПЕРАТОРОВ
Next СЧЕТЧИК

БЛОК_ОПЕРАТОРОВ будет выполнен столько раз, сколько значение шага Z нужно прибавить к начальному значению счетчика X, чтобы получить Y. Если значение шага не задано, то по умолчанию оно будет равно +1.

For I = 1 to AseColl.AseCount
Set Ase = AseColl.GetASEFromIndex(I)
Select Case Ase.Type
Case 1
Anz_Texte = Anz_Texte + 1
Case 3
Anz_Bitmap = Anz_Bitmap + 1
Case 4
Anz_Brush = Anz_Brush + 1
End Select
Next

1.4.9. Оператор цикла Do…Loop

Этот оператор позволяет повторять выполнение БЛОКА_ОПЕРАТОРОВ до тех пор, пока УСЛОВИЕ является истинным.
Do While УСЛОВИЕ
БЛОК_ОПЕРАТОРОВ
Loop
или
Do
БЛОК_ОПЕРАТОРОВ
Loop While УСЛОВИЕ
или
Do Until УСЛОВИЕ
БЛОК_ОПЕРАТОРОВ
Loop
или
Do
БЛОК_ОПЕРАТОРОВ
Loop Until УСЛОВИЕ

Предложение While (Пока) противоположно предложению Until (До). При использовании While выполнение БЛОКА_ОПЕРАТОРОВ цикла продолжается до тех пор, пока УСЛОВИЕ истинно (имеет значение True).
При использовании Until выполнение БЛОКА_ОПЕРАТОРОВ цикла прекращается, как только УСЛОВИЕ принимает значение True. Для выхода из цикла прежде, чем будет достигнуто предложение Loop, можно поместить одну или несколько инструкций Exit Do внутри тела цикла, включив их в такие управляющие структуры, как If…Then…Else .
Примеры:
Do While HWnd 0
CP = CP & System.GetClassName(HWnd) & "/"
HWnd =System.GetParent(HWnd)
Loop

Do While ChildHWnd 0
ClassName = System.GetClassName(ChildHWnd)
If ClassName = "msctls_statusbar32" Then
Set WindowRect = System.GetWindowRect(ChildHWnd)
S = Proc.GetString(WindowRect.Left, WindowRect.Top, _
WindowRect.Right, WindowRect.Bottom)
Exit Do
End If
ChildHWnd = System.GetWindow(ChildHWnd, GW_HWNDNEXT)
Loop

1.4.10. Оператор цикла With

Этот оператор позволяет выполнить БЛОК_ОПЕРАТОРОВ, не повторяя имя указанного объекта в ссылках на объекты, свойства и методы.
With ОБЪЕКТ
БЛОК_ОПЕРАТОРОВ
End With

Примеры:
With System.GetAppObject(3).ActiveCell.Font