Окна

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


Диалоговое окно (Dialog)

Разновидность окна, которое объединяет один или несколько органов управления. Используется для взаимодействия с пользователем

(см. ДиалогиDialogs).


Окна среды Stratum

В операционной системе Windows под окном понимают прямоугольную область на экране, отделенную логически от остального пространства. Окно может иметь размер, быть видимым, минимизированным, максимизированным и находиться в некоторой иерархии по отношению к другим окнам.

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


Окна в в Stratum подразделяются на два типа:

- Системные (окна редакторов, сообщений, библиотеки и так далее). Создаются в процессе редактирования проекта и не имеют прямого отношения к работающей модели. Подробно об этих окнах можно прочитать в описании среды (см. Окна средыEnviroment_window).

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


Создание окон

Окна, созданные моделью, можно разделить на несколько групп:

- Стандартные диалогиDialog_Functions служат для различных запросов и информирования пользователя, как правило модальны. То есть, пока они активны, другая работа в среде останавливается (например, запрос имени файла).

- Окна редактирования (например, MEditor()MEditor, DbBrowse()DbBrowse и другие) используются для просмотра и изменения данных. Модель осуществляет только инициализацию окна, после чего дальнейшее воздействие на них из модели ограничено. Схожими свойствами обладают окна приложений, которые запускаются из модели c помощью функции WinExec().

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


Системные окна

Из модели открывать, закрывать и менять некоторые харектеристики (положение и размер) системных окон. Для этого каждому из них поставлено в соответствие специальное имя:

@Watch@        Окно просмотра переменных

@Text@<класс>        Окно редактирования текста (+ имя класса)

@Scheme@<класс>        Окно редактирования схемы (+ имя класса)

@Image@<класс>        Окно редактирования изображения (+ имя класса)

@Messages@        Окно сообщений

@Libraries@        Окно библиотек

@Hierarchy@        Окно иерархии библиотек

@StratumFrame@        Главное окно среды


Закрытие окон

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

Окна графических пространств могут быть уничтожены в любой момент с помощью функции CloseWindow()CloseWindow. Нажатие кнопки Стоп (панель инструментов УправлениеToolbar_Control) так же приводит к закрытию всех открытых окон.


Свойства окон

Окна, содержащие графические пространства, имеют ряд свойств, на которые можно воздействовать с помощью функций.

- Заголовок окна. При создании окна заголовок устанавливается равным названию окна. Если необходимо, с помощью функций SetWindowTitle()SetWindowTitle и GetWindowsTitle()GetWindowTitle можно установить (или получить) заголовок.

- Координаты окна. Нулевые координаты соответствуют левому верхнему углу экрана. Для получения координат используются функции GetWindowOrgX()GetWindowOrgX и GetWindowOrgY()GetWindowOrgY и SetWindowOrg()SetWindowOrg или SetWindowPos()SetWindowPos.


- Размеры окна делятся на размеры собственно окна (внешние) и размеры клиентской части (внешние за вычетом размеров заголовка, рамок и скроллеров). Для управления внешними размерами используются функции - SetWindowSize()SetWindowSize, SetWindowPos()SetWindowPos, GetWindowWidth()GetWindowWidth, GetWindowHeight()GetWindowHeight. Для управления размерами клиентской области используются функции SetClientSize()SetClientSize, GetClientWidth()GetClientWidth, GetClientHeight()GetClientHeight.


- Положение окна относительно других окон. Указанное окно можно поместить поверх остальных функцией BringWindowToTop()BringWindowToTop


- Другие атрибуты. Функция ShowWindow()ShowWindow позволяет комплексно воздействовать на свойства окна - изменить видимость, минимизировать, максимизировать и так далее. Функция SetScrollRange()SetScrollRange изменяет диапазон прокрутки скроллеров.

Кроме этого, существуют функции, воздействующие сразу на все окна - ArrangeIcons()ArrangeIcons, CascadeWindows()CascadeWindows, Tile()Tile.


Окна и графические пространства

Для создания окон, включающих графические пространства, используются следующие функции:

LoadSpaceWindow()LoadSpaceWindow - функция позволяет загрузить из VDR файла заранее подготовленное пространство, или, если имя файла не указано, создает новое.

OpenSchemeWindow()OpenSchemeWindow - функция создает пространство как копию указанной схемы.

CreateWindowEx()CreateWindowEx - обладает свойствами двух вышеперечисленных функций, но окно, которое создает функция, располагается внутри другого окна.

Cвязь окон и графических пространств осуществляется посредством функции GetWindowName()GetWindowName и GetWindowSpace()GetWindowSpace.

Для более подробной информации см. раздел ГрафикаGraphics2d.


Окна и сообщения

Открытые окна могут получать различные сообщения от Windows, и реагировать неким образом на действия пользователя. Функция RegisterObject() позволяет зарегистрировать объект схемы на прием сообщений от указанного окна. Например, если пользователь случайно изменил размер окна, то можно его восстановить и так далее.

Для более подробной информации см. раздел СообщенияMessage_theorethic.


см. Основные термины и определенияTermins

Created with the Personal Edition of HelpNDoc: Easily create PDF Help documents