Размеры и местоположение формы на экране
Теперь определимся с размерами формы и ее местоположением на экране. Установить размеры и положение формы проще всего во время проектирования с помощью мыши. Другой способ — обратиться к окну свойств и задать размеры формы с помощью свойств WidthиHeight, а местоположение — с помощью свойств Left и Top (значения задаются в пикселах). Смысл свойств поясняет рисунок 7.21.
Рисунок 7.21. Размеры и местоположение формы на экране
Кроме того, с помощью свойства Position можно организовать автоматическое размещение формы на экране, выбрав одно из следующих возможных значений:
- poDefault – размеры и положение формы подбираются автоматически исходя из размеров экрана.
- poDefaultPosOnly – положение формы подбирается автоматически, а ширина и высота определяются значениями свойств WidthиHeightсоответственно.
- poDefaultSizeOnly – размеры формы устанавливаются автоматически, а местоположение определяется значениями свойств Left и Top.
- poDesigned – размеры и положение формы определяются значениями свойств Left, Top, Width, Height.
- poDesktopCenter – форма размещается в центре рабочего стола (т.е. экрана, из которого исключена панель задач). Размеры формы определяются значениями свойств WidthиHeight.
- poMainFormCenter – форма центрируется относительно главной формы. Размеры формы определяются значениями свойств WidthиHeight.
- poOwnerFormCenter – форма центрируется относительно формы-владельца. Размеры формы определяются значениями свойств WidthиHeight.
- poScreenCenter – форма размещается в центре экрана. Размеры формы определяются значениями свойств WidthиHeight.
Иногда размеры формы рассчитываются исходя из размеров ее внутренней рабочей области (client area), на которой размещаются компоненты. Как известно, в рабочую область не входят рамка и заголовок. Размеры рабочей области хранятся в свойствах ClientWidth и ClientHeight. При их установке значения свойств Width и Height автоматически пересчитываются (и наоборот).
Бывает, что при выборе размеров формы учитываются размеры экрана. Поскольку современные видео-адаптеры поддерживают множество режимов с различными разрешениями, встает вопрос: как обеспечить одинаковую пропорцию между формой и экраном независимо от разрешающей способности дисплея. На этот случай в форме предусмотрено свойство Scaled. Если оно установлено в значение True, то форма будет автоматически масштабироваться в зависимости от разрешающей способности дисплея.
При перемещении по экрану, форма может слегка прилипать к краям экрана, если края формы находятся в непосредственной близости от них. Это происходит в том случае, если свойство ScreenSnap содержит значение True. Расстояние формы до краев экрана, при котором форма прилипает, задается в свойстве SnapBuffer и измеряется в пикселях.
Работая с приложением, пользователь может свернуть форму или развернуть ее на всю рабочую область экрана с помощью соответствующих кнопок рамки. Состояние формы (свернута или развернута) определяется свойством WindowState, которое принимает следующие значения:
- wsNormal – форма находится в нормальном состоянии (ни свернута, ни развернута на весь экран);
- wsMinimized – форма свернута;
- wsMaximized – форма развернута на весь экран.
Если при проектировании вы измените значение свойства WindowState на wsMinimized или wsMaximized, то получите форму, которая при первом появлении будет автоматически либо свернута в панель задач, либо развернута на весь экран.
На компьютере с двумя и более мониторами существует возможность выбрать для формы монитор, на котором она отображается. Для этого следует установить свойство DefaultMonitor в одно из следующих значений:
- dmDesktop – форма отображается на текущем мониторе; никаких попыток разместить форму на каком-то конкретном мониторе не делается;
- dmPrimary – форма отображается на первом мониторе в списке Monitors объекта Screen (см. параграф 7.7.2);
- dmMainForm – форма отображается на том мониторе, на котором находится главная форма;
- dmActiveForm – форма отображается на том мониторе, на котором находится активная в данный момент форма.
Свойство DefaultMonitor учитывается лишь в том случае, если в программе существует главная форма.
Дата добавления: 2016-02-09; просмотров: 831;