Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8 Виз и невиз комп. формы..doc
Скачиваний:
4
Добавлен:
27.10.2018
Размер:
584.7 Кб
Скачать

1.2. Основные характеристики формы

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

Из всех созданных форм система Delphi при выполнении приложения делает видимой главную форму. Для этого ее свойству Visible устанавливается значе­ние True. Для остальных форм значение этого свойства по умолчанию равно False. Поэтому после запуска приложения другие формы на экране не отобра­жаются. В процессе выполнения приложения отобразить невидимые первона­чально формы можно с помощью свойства Visible или с помощью методов Show или Showmodal. Скрыть форму в процессе выполнения приложения можно с помощью свойства Visible или методом Hide. Примеры операторов управления видимостью формы:

Form2. Visible := True; // - сделать немодальную форму видимой;

Form2.Visible := False; // - невидимой;

Form2.Show; // - " видимой;

Form2.Hide; // - невидимой.

При использовании методов показа и скрытия формы значение параметра Visible устанавливается соответственно равным True или False.

Каждый раз при получении формой фокуса ввода (например, при щелчке кнопкой мыши в области формы) происходит ее активизация и возникает собы­тие OnActivate, а при потере фокуса - OnDeActivate.

Для закрытия формы используется метод Close. При закрытии основной формы прекращается работа всего приложения. Пример вызова оператора Close:

Form2. Close;

Метод Close без указания имени формы относится к главной форме и завер­шает выполнение приложения.

Метод Close не уничтожает созданный экземпляр формы, и ее можно снова вызвать на экран с помощью методов Show или Showmodal.

Для экономии ОП можно уничтожить форму, освободив при этом занимаемую ею ОП. Уничтожение формы можно выполнить с помощью методов Release, Free или Destroy. Предпочтительным считается метод Free, который предварительно проверяет возможность удаления формы. Пример вызова оператора:

Form2. Free;

При закрытии и уничтожении формы происходят следующие события: OnCloseQuery, OnClose, OnDeactivate, OnHide, OnDestroy.

Стиль формы определяется ее свойством ForrnStyle. Он может принимать од­но из значений:

FsNorml - стандартный стиль, используемый для большинства окон;

FsMDIChild - дочерняя форма в MDI;

FsMDIForm - родительская форма в MDI;

FsStayOnTop - форма отображается поверх других форм.

Стиль формы можно изменять в процессе выполнения приложения.

Каждая форма имеет рамку. Вид рамки определяется свойством BorderStyle типа TFormBorderStyle. Он может принимать следующие значения:

bsDialog - диалоговая;

bsSingle - форма с неизменяемыми параметрами;

bsNone - форма не имеет видимой рамки и заголовка и не может изменять свои размеры; используется для заставок;

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

bsToolWindow - форма панели инструментов;

bsSizeToolWin - форма панели инструментов с изменяемыми размерами.

В области заголовка формы могут отображаться 4 различные кнопки (стандартные). Набор кнопок можно задать с помощью свойства Borderlcons.Оно может принимать одно из следующих значений:

biSystemMenu - окно содержит все 3 кнопки и системное меню;

biMinimize - окно содержит кнопку минимизации (свертывания);

biMaximize - окно содержит кнопку максимизации (развертывания);

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

Системное меню представляет собой набор команд, общих для всех окон Windows. Например, Свернуть, Развернуть, Закрыть. При наличии у формы сие темного меню в области заголовка слева отображается пиктограмма приложения; при щелчке на ней и появляются команды системного меню.

Пример формы с открытым системным меню дан на рис. 3.

Различные значения свойства Borderlcons зависят друг от друга. Например, если нет системного меню, то не отображается ни одна кнопка. Если есть кнопки максимизации и минимизации, то не отображается кнопка справки. Возмож­ность появления кнопок также зависит от стиля рамки формы (свойства BorderStyle). Например, кнопки для максимизации и минимизации не отображаются начения свойства BorderStyle, равного bsToolWindow или bsSizeToolWin (связанных с панелью инструментов).

Рис. 3. Пример формы с открытым системным меню

Обычно стиль рамки формы и набор кнопок заголовка задаются на этапе раз­работки приложения с помощью Инспектора объектов. При этом на форме всегда видны обычная рамка и все кнопки независимо от значений свойств BorderStyle иBorderlcons. Заданные стиль рамки формы и набор кнопок становятся видимы­ми только при выполнении приложения.

Форма включает клиентскую и неклиентскую области. Неклиентская область занята рамкой и заголовком формы. В клиентской области размещаются различ­ные управляющие компоненты, производится вывод текста или отображение гра­фики. Свойства Width и Height определяют размер всей формы, а свойства Client Width и Client Height задают ширину и высоту клиентской части формы.

Каждая главная форма имеет в левой части заголовка пиктограмму, опреде­ляемую свойством Icon. Пиктограмму можно загрузить из файла в процессе раз­работки приложения одним из способов:

  • из Инспектора объектов в свойство Icon - для любой формы;

  • из страницы Application, вызванной с помощью Project\Options - команды меню для главной формы.

Форма как контейнер содержит в себе другие компоненты. Когда размеры окна недостаточны для отображения всех компонентов формы, на ней могут по­являться полосы прокрутки. Свойство AutoScroll типа Boolean определяет, появ­ляются ли они автоматически. Если свойство AutoScroll = True, то полосы про­крутки появляются и исчезают автоматически, по мере необходимости.

Свойство Cursor определяет форму указателя мыши, когда он находится в клиентской области формы или ее определенной части (над окном или кнопкой). Значение свойства выбирается в Инспекторе объектов из выпадающего

списка значений.

Свойство Enabled = True, чтобы форма реагировала на события от мыши, таймера и клавиатуры. Свойству Enabled устанавливается значение False, если надо заблокировать обработку событий. Этого не следует делать для главной

формы.

Свойство KeyPreview = True устанавливают для того, чтобы форма получала события от клавиатуры до того, как они поступят к управляющему элементу формы. KeyPreview = False устанавливается, если все события от клавиатуры обрабатываются управляющими элементами.

Значение свойства Menu позволяет выбрать из списка один из доступных ва­риантов основного меню. Значение свойства PopupMenu позволяет выбрать из списка один из доступных вариантов всплывающего (контекстного) меню.

Свойство Tag не имеет определенного назначения. Оно служит для хранения любого целого числа, например, кода, номера, которые используются програм­мой. Назначение свойства определяет разработчик приложения.