ЖУРНАЛ СТА №4/1999
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНСТРУМЕНТАЛЬНЫЕ СИСТЕМЫ 17 4/99 реализации доступа сценарной проце- дуры к элементам экранной формы. В iFIX для разрешения видимости в скриптовых процедурах стандартных внутренних элементов, таких как гра- фические примитивы, элементы про- смотра данных, графики и т.д., необхо- димо выбрать пункт «Edit Script» в кон- текстном меню, доступном по нажатию правой клавиши мыши над соответству- ющим объектом. Возможно также раз- решение видимости сразу для целой группы объектов аналогичным обра- зом. После выполнения данной проце- дуры становится возможным доступ к объекту из VBA-процедур непосредст- венно по имени. Поскольку iFIX имену- ет все объекты автоматически («Rect1», «Rect2», «Chart1», «Chart2» и т.д.), то ника- ких дополнительных усилий по разре- шению доступа к объекту из VBA от пользователя не требуется. При измене- нии пользователем имени объекта авто- матически обновляются ссылки на него в скриптах (кроме некоторых случаев, когда система не может распознать об- ращение к данному объекту). Таким образом, iFIX обеспечивает для VBA-скриптов доступ к любому внут- реннему объекту, не требуя от разработ- чика каких-либо дополнительных дей- ствий, однако для этого iFIX регистри- рует класс каждого своего графическо- го объекта в реестре Windows. В резуль- тате при запуске iFIX происходит за- грузка большого количества библиотек динамической компоновки, содержа- щих интерфейсы диспетчеризации к графическим объектам всех классов (экран, прямоугольник, дуга, овал, ли- ния и т.д.), что повышает требования к ресурсам системы. GENESIS32 предоставляет другой меха- низм доступа к внутренним элементам эк- ранной формы (графики и «тревоги» не входят в это число, поскольку являются объектами ActiveX). Для получения досту- па к объекту из VBA-сценария его необхо- димо предварительно поименовать внут- ри диалогового окна свойств объекта, до- ступного из контекстного меню. Автома- тическое именование однотипных объек- тов в GENESIS32 осуществляется путем за- дания одному из объектов шаблонного имени в формате NAME_, где NAME - имя объекта. При последующем тиражирова- нии объектов данного вида к имени до- бавляется порядковый номер («давле- ние_котла_1», «давление_котла_2» и т.д.). Ссылку на поименованный объект из VBA-кода можно получить посредством вызова одной из следующих функций: G e t V i s i b l e O b j e c t F r o m N a m e , GetDynamicObjectFromName, GetPoint- ObjectFromName. Функция GetVisibleObjectFromIndex позволяет по- лучить доступ к объекту по индексу, что удобно при унифицированной обработке множества элементов экранной формы. На первый взгляд кажется, что допол- нительная работа по именованию объек- тов создает для разработчика определен- ные неудобства. Однако делать это нужно только для объектов, к которым необхо- дим доступ из VBA-скриптов (а это, как правило, только часть объектов экран- ной формы), к тому же, при этом разра- ботчик присваивает объекту определен- Рис. 8. Создание VBA-сценария, связанного с выделенным объектом в GraphWorX32 Рис. 9. Среда IDE VBA в GraphWorX32. Код помещен в отдельный модуль Рис. 10. Предопределенные обработчики события «Указание и щелчок»
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy