Программы уровня окна

Прохождение конформа в мастер окна (OnConformToWindow)

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

  1. не вызывается, если в одной из зон окна уже идет процесс редактирования (вставки). Например, когда для редактирования поднимается принудительно зависимое окно, то OnConformToWindow вызывается единожды при открытии окна, когда собственно процесс Edit еще не начался.
  2. в принудительно зависимых окнах вызывается при открытии окна, а также когда в порождающей зоне изменилась позиция
  3. в принудительно независимых окнах вызывается единожды при открытии окна

Событие OnConformToWindow должно полностью подменить собой работу системы по позиционированию в мастере окна. Система на это рассчитывает и не выполняет собственных действий по этому поводу.

Особенности события "прохождение конформа":

  1. RTI.StartMode = 15.
  2. Окно, куда идет конформ - это RTI.TrgWindow. Выполнить позиционирование в мастере окна можно с помощью процедуры SE_WWD_CURSOR. RTI.TrgZone - корневая зона окна RTI.TrgWindow, в которой имеется видеопроцесс, т.е. можно считать, что это главная зона окна, куда идет конформ. В принудительно зависимое окно конформ идет из порождающей зоны RTI.CurZone. Не определена зона, из которой конформ идет в принудительно независимое окно, RTI.CurZone и т.п. здесь имеет пустое значение.

Пример обработки события "прохождение конформа" см. здесь.

Инициализация окна (OnInitializeWindow)

Непрерываемое программное событие уровня окна OnInitializeWindow, сопровождающее загрузку окна, вызывается, когда

  1. окно переходит из состояния заготовки в состояние подготовленного окна, в частности при первом открытии окна
  2. если подготовленное окно открывается повторно, и при этом меняется его FORM_WINDOW.ParentZone, а при выполнении предыдущего OnInitializeWindow было обращение к FORM_WINDOW.ParentZone

Запускается, если в свойствах окна в WED установлен флаг Initialize. Соответствующего программного свойства не существует, т.к. не имеет смысла менять его значение у уже загруженного окна.

Если в свойствах окна в WED установлен флаг Initialize, и поле "WLev prog" имеет непустое значение (именно  "WLev prog" в WED, а не FORM_WINDOW.WLevProg), то когда окно грузится из WDO до состояния заготовки, следующие свойства окна получают значения по умолчанию (предполагается, что эти свойства при необходимости будут заполнены в событии OnInitializeWindow):

Особенности программного события:

  1. RTI.StartMode = 16.
  2. RTI.CurZone - пустое значение.

Программное событие появилось в версии 14.99.5.