Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Delphi_1курс лекции / Тема 13 Интерфейс пользователя.doc
Скачиваний:
57
Добавлен:
23.03.2015
Размер:
73.22 Кб
Скачать

Рекомендации по выбору стиля окон приложения

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

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

Для основного окна приложения с неизменяемыми размерами наиболее подходящий стиль — BorderSlyle = bsSingle с исключением из числа доступных кнопок кнопки Развернуть, (BorderIcons.byMaximize = false). Это позволит пользователю сворачивать окно, восстанавливать, но не даст возможности развернуть окно на весь экран или изменить размер окна.

Для вторичных диалоговых окон наиболее подходящий стиль — BorderSlyle = bsDialog. Можно также использовать BorderStyle = bsSingle, одновременно исключая из числа доступных кнопок кнопку Развернуть (задавая BorderIcons.biMaximize значение false). Это позволит пользователю сворачивать диалоговое окно, если оно заслоняет на экране что-то нужное ему, восстанавливать окно, но не даст возможности развернуть окно на весь экран или изменить размер окна.

Избегайте, как правило, стиля BorderSlyle - bsNone. Невозможность переместить окно может создать пользователю трудности, если окно заслонит на экране что-то интересующее пользователя.

WindowState: TWindowState, где TWindowState = (wsNormal, wsMinimized, wsMaximized) Определяет вид, в котором окно первоначально предъявляется пользователю при выполнении приложения. Оно может принимать значения:

wsNormal нормальный вид окна (это значение WindowState используется по умолчанию)

wsMinimized окно свернуто

wsMaximized окно развернуто на весь экран

Position TPosition, где TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter);Определяет позицию и размер формы при ее первом показе пользователю.

poDesigned– Первоначальные размеры и положение окна во время выполнения те же, что во время проектирования. Это значение принимается по умолчанию, но обычно его следует изменить.

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

poDesktopCenter– Окно располагается в центре экрана. Размер окна тот, который был спроектирован. Этот режим не приспосабливается к приложениям с множеством мониторов.

poDefault– Местоположение и размер окна определяет Windows, учитывая размер и разрешение экрана. При последовательных показах окна его положение сдвигается немного вниз и вправо.

poDefaultPosOnly– Местоположение окна определяет Windows. При последовательных показах окна его положение сдвигается немного вниз и вправо. Размер окна — спроектированный.

poDefaultSizeOnly– Размер окна определяет Windows, учитывая размер и разрешение экрана. Положение окна - спроектированное.

poMainFormCenter – Это значение предусмотрено, начиная с Delphi5. Окно располагается в центре главной формы. Размер окна тот, который был спроектирован. Этот режим не приспосабливается к приложениям с множеством мониторов. Используется только для вторичных форм. Для главной формы действует так же, как poScreenCenter.

poOwnerForm Center –Это значение предусмотрено, начиная с Delphi 6. Окно располагается в центре формы, указанной как владелец данной в свойстве Owner. Размер окна тот, который был спроектирован. Если свойство Owner указывает не форму, действует как poMainFormCenter.

Обычно целесообразно для главной формы приложения задавать значение Position равным poScreenCenter или poDefault. И только в сравнительно редких случаях, когда на экране при выполнении приложения должно определенным образом располагаться несколько окон, имеет смысл оставлять значение poDesigned, принимаемое по умолчанию.

Если выбранное значение свойства Position предусматривает выбор размера

формы самим Windows по умолчанию, то на этот выбор влияют свойства PixelsPerInch и Scaled. По умолчанию первое из них задается равным количеству пикселов на дюйм в системе, второе установлено в false. Если задать другое число пикселов на дюйм, то свойство Scaled автоматически становится равным true. В этом случае при запуске приложения размер формы будет изменяться в соответствии с пересчетом заданного числа пикселов на дюйм к реальному числу пикселов на дюйм в системе (но только при разрешающем это значении свойства Position).

В Delphi 7 в форму добавлены свойства ScreenSnapиSnapBuffer. Если установить ScreenSnap в true, то при перемещении пользователем окна приложения оно будет захватываться краем экрана, если пользователь приблизил его к краю на расстояние меньшее, чем число пикселов, заданное свойством SnapBuffer

AutoScroll:Boolean. Определяет, будут ли на форме в процессе выполнения появляться автоматически полосы прокрутки в случае, если при выбранном пользователем размере окна не все компоненты помещаются в нем. Если значение AutoScroll равно true, то будут. В противном случае при уменьшении размера окна пользователь теряет доступ к компонентам, не поместившимся в его поле.

AutoSize:Booleanустановленное в true обеспечивает автоматическое изменение размеров формы таким образом, чтобы были видны все размещенные на ней компоненты.

Iconзадает пиктограмму формы. По умолчанию используется стандартная пиктограмма Delphi. Нажав в Инспекторе Объектов кнопку с тремя точками в строке свойства Icon, вы попадаете в окно Редактора Изображений. Щелкнув в нем на кнопке Load (загрузить), вы можете выбрать любой файл с изображением пиктограммы (файл с расширением .ico). С Delphi поставляется некоторое число пиктограмм, расположенных в каталогеImages\Icons.

Свойство Icon задает только пиктограмму формы, которая отображается в левом верхнем углу окна приложения в его нормальном состоянии. Но если пользователь свернет окно, то в полосе задач будет видна другая пиктограмма — пиктограмма приложения. Ту же пиктограмму увидит пользователь, если будет просматривать средствами Windows содержимое каталога. По умолчанию для нее используется стандартная пиктограмма Delphi. При свертывании приложения рядом с пиктограммой в полосе задач пользователь будет видеть надпись — по умолчанию это имя приложения. Если вы хотите, то можете изменить эту пиктограмму и эту надпись. Для этого вы должны выполнить команду Project | Options и в открывшемся окне опций проекта перейти на страницу Application. В этом окне вы можете задать заголовок (Title), который увидит пользователь в полосе задач при сворачивании приложения. А кнопка Load Icon позволяет вам выбрать пиктограмму, которая будет видна в полосе задач при сворачивании приложения или при просмотре пользователем каталога, в котором расположен выполняемый файл приложения.

FormStyle: TFormStyle. TFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop) Задает стиль формы. Может принимать значения:

fsNormal Окно обычного приложения. Это значение FormStyle принято по умолчанию.

fsMDIForm Родительская форма приложения MDI, т.е приложения с дочерними окнами, используемого при работе с несколькими документами одновременно.

fsMDIChildДочерняя форма приложения MDI.

fsStayOnTopОкно, остающееся всегда поверх остальных окон Windows.

значение FormStyle = fsStayOnTop делает окно всегда остающимся на экране поверх остальных окон не только данного приложения, но и всех других приложений, в которые может перейти пользователь

Используйте стиль FormSlyle = fsStayOnTop для отображения окон сообщений пользователю о каких-то аварийных ситуациях.

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

if MStayOnTop.Checked

then Forml.FormStyle := fsStayOnTop

else Forml.FormStyle := fsNormal;

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

Свойство AutoCheck введено только начиная с Delphi 6. В более ранних версиях перед приведенным выше оператором надо вставить оператор

MStayOnTop.Checked := not MStayOnTop.Checked;

который программно переключает состояние раздела.