Приветствую Вас, Гость · Вход · Регистрация

Главная » Файлы » MicroSCADA » Scil

4. Объекты Scil часть 3
[ ] 18.12.2008, 21:35

4.4 Объекты пользовательского интерфейса

4.4.1 Изображения

Общие сведения

Изображения и компоненты изображений были кратко описаны в Главе 2. Руководство "Редактирование изображений" описывает, как создавать и программировать изображения. Данный раздел описывает, как обращаться к изображениям и элементам изображений из SCIL.

В зыке программирования SCIL изображения и окна управляются командами обработки изображений, описанными в разделе 7.2. Кроме того, окна могут иметь атрибуты, доступ к которым осуществляется ссылками на атрибуты окна. Именованные программы изображений исполняются посредством вызовов программ.

Иерархия изображений

Изображение может содержать некоторое количество под-изображений в форме изображений, показываемых в окнах, и функций изображений. Эти под-изображения, в свою очередь, также могут содержать под-изображения. Изображение и его под-изображение формируют иерархию изображений с главным изображением (общим изображением) в вершине иерархии. Рисунок 8 демонстрирует пример такой иерархии. A, B, C, D, E и F обозначают окна и функции изображений.

рис.8
Рис. 8. Иерархическая структура изображения. Под-изображения - это функции изображения или изображения, показываемые в окнах. Символы A. .. F обозначают имена окон и функций изображения.

Изображение, содержащее под-изображения, называется "родителем" этих под-изображений, а сами под-изображения являются "потомками" (дочерние изображения). Эта связь дети-родители определяет, как окна показываются относительно других окон. Она также важна при обращении к окнам и именованным программам.

Пути изображений

При обращении к окнам и именованным программам может использоваться путь изображения. Путь изображения показывает, в каком изображении – главном или под-изображении - необходимо искать окно или именованную программу. Путь изображения имеет следующий формат:

name/name/name/ ... /name

где ‘name’ - это имя окна или функции изображения, содержащего следующее изображение в иерархии (считая от изображения, в котором была выдана команда). (Обратный слэш \ может использоваться вместо прямого слэша /). К главному изображению можно обращаться с предопределенным именем ROOT. Если изображение включено в диалоговую систему (смотрите раздел 4.4.2), ROOT также относится к контейнеру изображений, куда включено изображение.

Если путь изображения не задан, окно или именованная программа сначала ищется в том же изображении, где дана ссылка. Если там ничего не найдено, поиск продолжается в "родительском" изображении, и так далее до главного изображения. Следовательно, при обращении к окнам и программам в пределах одного изображения или его родителя указывать путь не требуется.

Например, путь изображения для обращения к именованной программе SAMPLE в под-изображении 4 на рис. 8 из главного изображения был бы равен:

A/D

Если программа не найдена в под-изображении 4, поиск продолжается в под-изображении 1, а затем - в главном изображении.

Атрибуты объекта изображения

Программист может назначать окнам и функциям изображения атрибуты для различных целей, используя команду .SET, описанную в разделе 7.4. Атрибуты не имеют какого-либо функционального назначения, но могут использоваться, например, в качестве переменных для окон или функций изображений. Атрибутам могут быть присвоены произвольные имена длиной до 63 символов в соответствии с правилами, приведенными в разделе 2.2. Присваиваемые данные могут иметь любой тип данных.

Атрибуты окон и функций изображения вызываются согласно следующему формату:

[picture].attribute

где ‘picture’ - путь изображения, ‘attribute’ - имя атрибута.

Ссылка на атрибут может использоваться в SCIL-выражениях, где значение атрибута заменяет ссылку. Разрешенные операции зависят от типа данных атрибута (смотрите Главу 6). Если атрибут имеет векторный тип, ссылка на него означает весь вектор. Атрибуты объекта изображения не могут быть индексированы.

Кроме того, атрибуты объекта изображения могут быть расширены таким же образом, как и переменные (смотрите Главу 5).

Примеры:

.SET PIC_FUNC_1/WINDOW_2.RESIZED = TRUE
.SET .COUNTER = 0
.SET .COUNTER = .COUNTER + 1

Вызовы именованных программ

Каждое изображение может иметь ряд именованных программ, которые запускаются следующим образом:

[picture].program [(argument_list)]

где

'picture' Путь изображения к объекту, содержащему именованную программу, смотрите выше. Если путь не указан, 'program' разыскивается в изображении, содержащем вызов программы. Если 'program' не найдена и там, поиск продолжается в его родительском изображении, и так далее.
'program' Имя именованной программы.
‘argument_list’ Аргументы, заданные в виде списка SCIL-выражений, разделенных запятыми и заключенных в круглые скобки. Список аргументов может содержать до 32 аргументов.

Если вызов встречается в программе, он начинает выполнение именованной программы в данном изображении. Последующий оператор в вызывающей программе не выполняется, пока не завершится выполнение именованной программы. Если программа с заданным именем не найдена, выдается состояние ошибки. Именованные программы могут быть выполнены из любой программы в диалоговой системе. Они также используются как программы повторного вызова в Motif widget.

Значение аргументов используется посредством функций ARGUMENT, смотрите Главу 8.

Используя SCIL-команду #RETURN (смотрите раздел 7.3) в именованной программе, можно программировать ее для возвращения значения программе вызова. Именованная программа, которая возвращает значение, может использоваться как операнд в выражениях, например, она может быть присвоена переменной.

Пример:

A/B.CREATE_ERROR_DIALOG
Выполняет именованную программу CREATE_ERROR_DIALOG окна B, которое является потомком окна A.

@A = .MY_NAMED_PROGRAM (125,%V+6,”ABC”)
Программа MY_NAMED_PROGRAM выполняется, и ее возвращаемое значение присваивается переменной A.

 

4.4.2 Объекты Visual SCIL

Общие сведения

Объекты Visual SCIL соответствуют диалогам, элементам диалогов и рисункам (образам), разработанным в редакторе диалогов Dialog Editor или созданным с помощью SCIL. Имеется около 40 типов объектов Visual SCIL, которые могут быть сгруппированы следующим образом:

  • Диалоги. Они имеют два типа: обычные диалоги и основные диалоги.
  • Составные элементы диалога. Это элементы диалога, которые могут содержать другие элементы диалога:
    • Контейнеры - видимые или невидимые поля, содержащие другие элементы диалога.
    • Контейнеры изображения. Это контейнеры, которые могут содержать изображения.
    • Панели меню, меню и пункты меню. Панели меню могут содержать одно или более меню, меню могут содержать меню и пункты меню.
    • Записные книжки, страницы записной книжки и элементы записной книжки.
    • Простые элементы диалога, такие как кнопки, кнопки-переключатели, тексты, списки и т.д. Простые элементы диалога не могут содержать никаких других объектов.
    • Рисунки (образы).

Ссылки на типы объектов Visual SCIL в SCIL осуществляются посредством имен, начинающихся с VS_. Например, кнопки именуются как VS_BUTTON. Руководство “Объекты Visual SCIL” перечисляет и описывает все типы объектов Visual SCIL.

Вообще, диалоги, элементы диалога и рисунки разрабатываются в редакторе диалогов Dialog Editor, хотя они могут быть созданы непосредственно в SCIL. Диалог и элементы диалога, созданные в Dialog Editor, хранятся в файлах, откуда SCIL-команда .LOAD загружает их в память как объект Visual SCIL с заданным именем. Объекты, созданные командой .CREATE, не сохраняются в файлах.

Команды SCIL, используемые для обработки объектов Visual SCIL, описаны в разделе 7.4.

В отличие от объектов системы и объектов приложения, объекты Visual SCIL не являются глобальными. Они известны и доступны только в той диалоговой системе, где они были созданы или загружены.

Системы диалогов

Объекты Visual SCIL образуют иерархические системы диалогов с главным диалогом или контейнером изображения в вершине иерархии. Каждый главный диалог и каждая диалоговая система запускают новую систему диалогов. Иерархия объектов важна при ссылке на объекты.

Объект, содержащий другой объект, называется родительским объектом, а объекты, содержащиеся в другом объекте, называются дочерними (потомками). Дочерние объекты зависят от своих родительских объектов. При загрузке родительских объектов загружаются также дочерние объекты, а когда родительские объекты удаляются (командой .DELETE), дочерние объекты также удаляются.

При загрузке диалога или элемента диалога командой .LOAD, он становится дочерним объектом загружающего объекта (если путь объекта не указан, смотрите ниже). При загрузке основного диалога или контейнера изображения, он запускает новую систему диалогов.

Рис. 9 представляет пример диалоговой системы Visual SCIL с четырьмя диалогами. Диалог 1, который является основным диалогом, содержит четыре элемента диалога. Элемент диалога B загружает диалог 2. Этот диалог содержит три элемента диалога, один из которых, объект G загружает диалог 3. Элемент диалога D содержит два элемента диалога, и элемент диалога F содержит два элемента. Например, D может быть панелью меню, содержащей меню, которое содержит пункты меню (опции меню). Элемент диалога J загружает диалог 4.

Элементы диалога A...D являются дочерними объектами основного диалога. Диалог 2 является дочерним объектом элемента B и родительским объектом элементов диалога G...I. Диалог 4 является дочерним объектом элемента J, который является дочерним объектом элемента F, и так далее.

рис. 9

Рис. 9. Пример системы диалогов

Атрибуты и методы

Атрибуты объектов Visual SCIL определяют их характеристики и функции, например, видимость, позицию, содержимое текста, поведение, цвет, шрифты и т.д. Некоторые значения атрибутов могут быть заданы в редакторе диалогов Dialog Editor, некоторые - только из SCIL, а другие - и в редакторе и в SCIL.

Динамические изменения диалогов и элементов диалогов могут быть получены путем изменения значений их атрибутов посредством SCIL-команд .SET и .MODIFY.

Каждый объект имеет ряд предопределенных атрибутов с предварительно заданными именами, типами данных и назначениями. Предопределенные атрибуты каждого типа объекта перечислены и описаны в руководстве "Объекты Visual SCIL". Кроме того, объектам можно присваивать произвольное количество атрибутов, определяемых пользователем, с помощью команд .LOAD, .CREATE и .MODIFY.

Каждый диалог и элемент диалога могут иметь ряд методов, которые являются программами различного назначения, например, циклически исполняемые программы, программы, выполняемые при наступлении определенных событий (объекты событий), программы, запущенные операцией пользователя, и программы, запущенные языком программирования SCIL.

Программы, запускаемые языком SCIL, могут быть предопределенными или определенными пользователем. Они запускаются путем вызова метода, формат которого описан ниже.

Ссылки на объекты Visual SCIL

При проектировании диалога или элемента диалога в редакторе диалогов (Dialog Editor) каждому элементу может быть присвоено имя. Это имя будет именем объекта Visual SCIL для элемента, если он включен в диалог или в элемент диалога, загруженный командой .LOAD. Загруженному диалогу или элементу диалога присваивается имя объекта Visual SCIL с помощью команды .LOAD. Объектам, созданным командой .CREATE, имена присваиваются этой же командой.

Объектные ссылки используются при загрузке, создании, удалении объектов, а также в ссылках на атрибуты и в вызовах методов. При ссылке на объект одним уровнем ниже достаточно задать имя объекта. При ссылке на объект, расположенный более чем на один уровень ниже, должен быть задан путь объекта следующим образом:

name\name\name\.... \name

где каждое ‘name’ - имя объекта Visual SCIL.

Имеются следующие предопределенные имена путей:

ROOT = основной диалог или контейнер изображения в вершине диалоговой системы.

PARENT = родитель объекта.

THIS = рассматриваемый объект.

PARENT и ROOT - это единственно возможные имена для доступа к объектам на более высоком уровне в иерархии.

Ссылки на атрибуты

Ссылка на атрибут осуществляется следующим образом:

[object].attribute,

где ‘object’ - ссылка на объект, и ‘attribute’ - имя атрибута.

Если ссылка на атрибут или на метод осуществляется из метода в пределах этого же объекта, то ссылку на объект можно опустить. Аналогично, при ссылке на атрибут, принадлежащий дочернему объекту, который находится на один уровень ниже, имя объекта указывать не нужно, если не может возникнуть коллизий.

Ссылки на атрибут могут использоваться в выражениях. Это означает, что ссылка заменяется значением атрибута. Ссылки используются также с командой .SET с целью изменения атрибута. Ссылки на атрибут могут быть расширены подобно переменным, смотрите Главу 5.

Пример:

.SET MY_BUTTON._TITLE = “OK”

Этот оператор устанавливает метку кнопки (объект Visual SCIL - MY_BUTTON) в состояние OK, которое немедленно отображается на экране, если кнопка также отображена.

Вызовы методов

Вызов методов приводит к выполнению методов - предопределенных методов и методов, определяемых пользователем. В случаях, когда метод возвращает значение, может использоваться ссылка на метод, как и ссылка на атрибут, т.е. ссылка может использоваться в выражениях, и она будет замещена возвращенным значением. Вызов метода имеет следующий формат:

[object].method [(argument_list)]

где

‘object’ Ссылка на объект. Не требуется при ссылках на методы в том же объекте или в объекте одним уровне ниже.
‘method’ Наименование метода.
'argument_list' Аргументы, которые могут быть любыми выражениями SCIL. Задаются в виде списка SCIL-выражений, разделенных запятой и заключенных в круглые скобки. Могут задаваться до 32 аргументов.

Если метод является SCIL-программой, то аргументы используются посредством функций ARGUMENT (смотрите Главу 8). Используя SCIL-команду #RETURN, можно запрограммировать метод на возврат значения. Если метод возвращает значение, то вызов метода можно использовать в выражениях, а возвращенное значение заменяет его вызов.


Оглавление

По материалам © ABB
Категория: Scil | Добавил: RAZ
Просмотров: 976 | Загрузок: 0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]