- •1. Функция ThisDisplay.GetVisibleObjectFromName(“Имя”)
- •2. Функция ThisDisplay.GetVisibleObject From Index(…)
- •3. Функция Имя_Символа.GetVisibleObjectFromIndex ( …)
- •4. Функция Имя_Символа.GetVisibleObjectFromName(“Имя”)
- •2. Функция Имя_символа.GetDynamicObjectFromIndex(1)
- •3. Функция Имя_Графич_Объекта.GetDynamicObjectFromName(“Имя”)
3. Функция Имя_Графич_Объекта.GetDynamicObjectFromName(“Имя”)
К динамическим действиям внутри графического объекта также можно получить доступ и по имени динамического действия. Функция Имя_Графич_объекта.GetDynamicObjectFromName(“Имя”) возвращает динамическое действие по имени принадлежащее графическому объекту.
п.3. Написание процедур модуля ThisDisplay
Как было сказано выше, модуль ThisDisplay является специализированным модулем, который представляет экранную форму GraphWorX. Для ввода исходного текста модуля ThisDisplay выполните двойной щелчок на элементе ThisDisplay с окне проекта.
Окно кода состоит из двух списков и поля ввода исходного текста.
Выпадающий список, расположенный слева позволяет выбрать следующие элементы: - Общая область
- МодульGwxDisplay
-
Идентификаторы всех управляющих
элементов (ActiveX – элементов),
вставленных в экранную форму
Выпадающий список, расположенный справа позволяет выбрать события, относящиеся к объекту выбранному в левом списке.
Обработка событий объекта GwxDisplay
В левом списке выберите объект GwxDisplay. Тогда в правом списке появятся события связанные с экранной формой. Ниже приведем описания некоторых из них:
Событие |
Описание события |
DisplayLoad |
Событие происходит при загрузке экранной формы |
PreRuntimeStart |
Событие происходит перед запуском экранной формы в режиме Исполнение |
PostRuntimeStart |
Событие происходит после запуска экранной формы в режиме Исполнение |
PreRuntimeStop |
Событие происходит до выхода из режима Исполнение |
Все процедуры модуля GwxDisplay должны быть событийно-ориентированными. Поэтому программист должен спланировать работу программы так, чтобы нужные действия происходили при выполнении определенных событий.
Пример: Ниже приведем две процедуры, которые выполняются после запуска экранной формы на режим Исполнение и после снятия из режима Исполнения.
1. Установите на экране эллипс и введите в окно Инспектора свойств введите на поле Имя объекта строку: “Ellip”.
2. Откройте редактор VBA и выберите в левом списке объект GwxDisplay, а в правом списке событие PreRuntimeStart. Появляется шаблон процедуры. Введите следующий код:
Private Sub GwxDisplay_PreRuntimeStart()
MsgBox(“Система переводится в режим Исполнения”)
Dim obj As GwxDisplay
Set obj = ThisDisplay.GetVisibleObject From Name(“Ellip”)
obj.fillColor = RGB(255,0,0)
End Sub
3. В правом списке выберите событие PostRuntimeStop и введите в шаблон процедуры код:
Private Sub GwxDisplay_PreRuntimeStop()
MsgBox(“Система выходит из режима Исполнения”)
Dim obj As GwxDisplay
Set obj = ThisDisplay.GetVisibleObject From Name(“Ellip”)
obj.fillColor = RGB(255,0,0)
End Sub
3. Перейдите в экранную форму и запустите в режим Исполнения. Как видно, в режиме Исполнения эллипс красного цвета, а после выхода примет зеленый цвет.
Запуск макросов VBA в режиме Разработка
G
raphWorx32
может запустить макрос VBA,
находясь и в режиме Разработка, при
двойном щелчке на объекте, с которым
связан этот макрос. Для примера создайте
графический объект Эллипс. Для
соединения Эллипса с макросом выполните
щелчок правой кнопкой мыши на этом
объекте. При этом появляется контекстное
меню. Из этого меню выполните команду
Создать VBA-сценарий.
При этом открывается окно:
В поле «Имя сценария» введите имя сценария, например “Test”. После нажатия на кнопку ОК запускается редактор VBA. При этом в окне кода появится заголовок процедуры VBA-сценария, а в окне проекта добавляется новый модуль для этой процедуры. Имя модуля составлено следующим образом:
Gwx Имя макроса_Main
Например, Gwx Test_Main. В эту заготовку процедуры введите код, как указано ниже:
Теперь, если перейти в окно GraphWorx32 и выполнить двойной щелчок на этом эллипсе, то появляется окно сообщений, что показывает срабатывание макроса.
Запуск макросов VBA в режиме Исполнение
Д
инамическое
действие Указание и Щелчок может
вызывать операцию Выполнить сценарий
VBA. Для этого В
окне Инспектора свойств выберем операцию
Выполнить сценарий VBA.
П ри нажатии на кнопку Создать появляется окно Мастера VBA-сценариев. В этом окне вводится имя сценария.
После нажатия на кнопку ОК открывается окно редактора VBA, где вводится код процедуры.
Код для вращения руки робота
Sub Demo( )
DoEvents
Static count As Integer, _
arm_state As Integer, _
Napr As Boolean
If Napr = 0 Then
arm_state = arm_state + 10
Else
arm_state = arm_state - 10
End If
If arm_state >= 200 Then Napr = 1
If arm_state <= 0 Then Napr = 0
Call SetPointValue("~~Arm~~", arm_state)
End Sub
Sub SetPointValue(ByVal name As String, ByVal val)
Dim obj As GwxPoint
Set obj = ThisDisplay.GetPointObjectFromName(name)
If obj Is Nothing Then Stop
obj.Value = val
Set obj = Nothing
End Sub
