Руководство разработчика

Режимы показа формы

Для показа форм в платформе используется два вида окон - всплывающее окно и окно-рамка. Всплывающие окна наиболее часто используются для показа диалогов и окон-сообщений. Такие окна всегда отображаются поверх всех остальных окон на экране. Всплывающее окно не имеет кнопок для минимизации и максимизации окна, отсутствуют возможность менять размер окна и иметь панель инструментов. Если на момент показа всплывающего окна установлен обработчик размер, то изменение размера и расположение элементов управления в диалоге поддерживается. Кроме того, если размер всплывающего окна больше области показа монитора, то происходит автоматическая подгонка размера диалога под область показа. Изменение размера всплывающего окна и расположение его содержимого может происходить до некоторых значений ширины и высоты, которые задаются в полях мин_ширина и мин_высота.(см. Изменение размеров диалога)

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

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

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

Для одновременного показа нескольких форм в различных режимах используется метод ПОКАЗАТЬ_СПИСОК_ФОРМ. Использование этого режима упрощает показ форм. В этом режиме заполнение форм производится автоматически, то есть не нужно вызывать последовательно методы форма.Заполнить и форма.ПОКАЗАТЬ. При показе списка форм верхнего уровня можно задавать специальные опции для минимизации, максимизации формы и для определения варианта показа на экране в режиме мультимониторности.

За расположение и размер окна на экране отвечают свойства - левый, верхний, ширина, высота, центр и авто_размер. Свойства левый и верхний отвечают за расположение окна на экране, эти свойства игнорируются при показе окна в немодальном режиме и режиме окна верхнего уровня, а также при установленном свойстве центр=ДА . Свойство центр применяется только для всплывающих окон и игнорируется для MDI-окон и окон верхнего уровня. Данное свойство обеспечивает центрирование всплывающего окна относительно главного окна приложения. Если всплывающее окно центрировано относительно главного окна приложения, которое минимизировано и сдвинуто за пределы рабочего стола, видимого на мониторе, то всплывающее окно отображается со сдвигом, как показано ниже на рисунке. Свойство авто_размер управляет размером окна, оно в автоматическом режиме подбирает нужный размер окна в зависимости от размера доступной клиентской области родительского окна или рабочего стола. Данное свойство применяется только для MDI-окон и окон верхнего уровня, если это свойство не включено, то за размер окна отвечают свойства ширина и высота.

Для типов ДИАЛОГ и БЛАНК существует специальный метод МИН_РАЗМЕР, который позволяет установить форме минимальный размер, охватывающий все элементы управления.

немодальный режиммодальный режимрежим окна верхнего уровня**
ДИАЛОГПОКАЗАТЬ_МДИ*ПОКАЗАТЬ_МОДАЛЬНЫЙПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ
ПОКАЗАТЬ
БЛАНКПОКАЗАТЬ_МДИПОКАЗАТЬ_МОДАЛЬНЫЙПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ
ПОКАЗАТЬ
ТАБ_ФОРМАПОКАЗАТЬ_МДИПОКАЗАТЬ_МОДАЛЬНЫЙПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ
ПОКАЗАТЬ
ОТЧЕТПОКАЗАТЬ_МДИПОКАЗАТЬ_МОДАЛЬНЫЙПОКАЗАТЬ_ВЕРХНЕГО_УРОВНЯ
ПОКАЗАТЬ

* метод ПОКАЗАТЬ_МДИ во всех типах, кроме типа ДИАЛОГ, аналогичен методу ПОКАЗТЬ - показывает всплывающее окно в немодальном режиме. Для типа ДИАЛОГ метод ПОКАЗАТЬ_МДИ производит показ не всплывающего окна, а окна-рамки.

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

В таблице ниже систематизирована зависимость режима показа и поведения позиционирования/установления размеров формы.

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

См. также: