Режимы показа формы
Для показа форм в платформе используется два вида окон - всплывающее окно и окно-рамка. Всплывающие окна наиболее часто используются для показа диалогов и окон-сообщений. Такие окна всегда отображаются поверх всех остальных окон на экране. Всплывающее окно не имеет кнопок для минимизации и максимизации окна, отсутствуют возможность менять размер окна и иметь панель инструментов. Если на момент показа всплывающего окна установлен обработчик размер, то изменение размера и расположение элементов управления в диалоге поддерживается. Кроме того, если размер всплывающего окна больше области показа монитора, то происходит автоматическая подгонка размера диалога под область показа. Изменение размера всплывающего окна и расположение его содержимого может происходить до некоторых значений ширины и высоты, которые задаются в полях мин_ширина и мин_высота.(см. Изменение размеров диалога)
Окно-рамка также используется для показа диалогов. При показе такого окна оно появляется в области панели задач и имеет системное меню, кнопки максимизации и минимизации и полосы прокрутки. Окно-рамка имеет возможность менять размер окна и иметь собственную панель инструментов. Панель инструментов находится вне плоскости формы, а располагается в окне рамки формы.
Показ форм осуществляется в двух режимах - модальный и немодальный, в зависимости от того, блокируется ли возможность взаимодействия с родительским окном и системой в целом.
Модальное окно - это окно, которое блокирует работу пользователя с основным приложением до тех пор , пока окно не будет закрыто. Для всех типов форм,кроме диалогов, форма показывается в диалоге с кнопками ОК и Отмена.
Немодальный режим обладает противоположным поведением по сравнению с модальным. Пользователь может взаимодействовать c родительским окном - это означает, что пользователь может продолжать работу в приложении, даже когда немодальное диалоговое окно отображено на экране. В немодальном режиме имеется возможность прокрутки скроллируемых форм.
Для одновременного показа нескольких форм в различных режимах используется метод ПОКАЗАТЬ_СПИСОК_ФОРМ. Использование этого режима упрощает показ форм. В этом режиме заполнение форм производится автоматически, то есть не нужно вызывать последовательно методы форма.Заполнить и форма.ПОКАЗАТЬ. При показе списка форм верхнего уровня можно задавать специальные опции для минимизации, максимизации формы и для определения варианта показа на экране в режиме мультимониторности.
За расположение и размер окна на экране отвечают свойства - левый, верхний, ширина, высота, центр и авто_размер. Свойства левый и верхний отвечают за расположение окна на экране, эти свойства игнорируются при показе окна в немодальном режиме и режиме окна верхнего уровня, а также при установленном свойстве центр=ДА . Свойство центр применяется только для всплывающих окон и игнорируется для MDI-окон и окон верхнего уровня. Данное свойство обеспечивает центрирование всплывающего окна относительно главного окна приложения. Если всплывающее окно центрировано относительно главного окна приложения, которое минимизировано и сдвинуто за пределы рабочего стола, видимого на мониторе, то всплывающее окно отображается со сдвигом, как показано ниже на рисунке. Свойство авто_размер управляет размером окна, оно в автоматическом режиме подбирает нужный размер окна в зависимости от размера доступной клиентской области родительского окна или рабочего стола. Данное свойство применяется только для MDI-окон и окон верхнего уровня, если это свойство не включено, то за размер окна отвечают свойства ширина и высота.
Для типов ДИАЛОГ и БЛАНК существует специальный метод МИН_РАЗМЕР, который позволяет установить форме минимальный размер, охватывающий все элементы управления.
немодальный режим | модальный режим | режим окна верхнего уровня** | |
ДИАЛОГ | ПОКАЗАТЬ_МДИ* | ПОКАЗАТЬ_МОДАЛЬНЫЙ | ПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ |
ПОКАЗАТЬ | |||
БЛАНК | ПОКАЗАТЬ_МДИ | ПОКАЗАТЬ_МОДАЛЬНЫЙ | ПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ |
ПОКАЗАТЬ | |||
ТАБ_ФОРМА | ПОКАЗАТЬ_МДИ | ПОКАЗАТЬ_МОДАЛЬНЫЙ | ПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ |
ПОКАЗАТЬ | |||
ОТЧЕТ | ПОКАЗАТЬ_МДИ | ПОКАЗАТЬ_МОДАЛЬНЫЙ | ПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ |
ПОКАЗАТЬ |
* метод ПОКАЗАТЬ_МДИ во всех типах, кроме типа ДИАЛОГ, аналогичен методу ПОКАЗТЬ - показывает всплывающее окно в немодальном режиме. Для типа ДИАЛОГ метод ПОКАЗАТЬ_МДИ производит показ не всплывающего окна, а окна-рамки.
**Режим окна верхнего уровня подразумевает создание нового окна вне области окна приложения. Окно верхнего уровня появляется в области панели задач и имеет системное меню, кнопки максимизации и минимизации и полосы прокрутки. Для окна верхнего уровня в функции его показа можно задавать опции для минимизации, максимизации формы и для определения варианта показа на экране в режиме мультимониторности.
В таблице ниже систематизирована зависимость режима показа и поведения позиционирования/установления размеров формы.
Аспект поведения | Режим показа для типов ТАБ_ФОРМА, ОТЧЕТ, БЛАНК |
Режим показа для типа ДИАЛОГ |
||
---|---|---|---|---|
ПОКАЗАТЬ, ПОКАЗАТЬ_МДИ, ПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ |
ПОКАЗАТЬ_МОДАЛЬНЫЙ | ПОКАЗАТЬ_МДИ, ПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ |
ПОКАЗАТЬ, ПОКАЗАТЬ_МОДАЛЬНЫЙ |
|
Применение исходных значений полей левый и верхний. | Никогда. Автоматическое расположение окон каскадом. | При значении поля центр = НЕТ. | Никогда. Автоматическое расположение окон каскадом. | При значении поля центр = НЕТ. |
Применение исходных значений полей ширина и высота. | При значении поля авто_размер = НЕТ. | Всегда. | Для окна рамки - при значении поля авто_размер = НЕТ. В любом случае применяется для размера прокручиваемого содержимого. | Всегда. |
Учет поля центр. | Игнорируется. | Учитывается. | Игнорируется. | Учитывается. |
Учет поля авто_размер. | Учитывается. | Игнорируется. | Учитывается. | Игнорируется. |
Учет поля идент для загрузки и сохранения настроек. | Учитывается. | Учитывается. | Учитывается. | Учитывается. |