Delphi

КОМПЬЮТЕРНЫЕ КУРСЫ "ПОИСК"

[Главная страница] [Delphi] [Контакты]

Стиль границы


Стиль границы

Важное свойство формы — BorderStyle. Оно относится к визуальному элементу формы, но оказывает гораздо более сильное влияние на поведение окна.

В ходе разработки форма всегда отображается, используя заданное по умолчанию значение bsSizeable свойства BorderStyle. Это значение соответствует стилю Windows толстая рамка. Если вокруг главного окна имеется толстая рамка, перетаскивая ее границу, пользователь может изменять его размеры. Данное состояние можно определить по специальным курсорам изменения размеров (в виде двусторонней стрелки), которые появляются при наведении курсора мыши на эту толстую границу окна.

При выборе второго важного параметра для этого свойства (bsDialog) форма использует в качестве своей границы обычную рамку диалогового окна (толстую рамку, которая не позволяет изменять размеры). Обратите также внимание, что при выборе значения bsDialog форма становится диалоговым окном. Это приводит к определенным изменениям: отличаются, например, пункты системного меню, а форма игнорирует некоторые элементы свойства набора Borderlcons.

Для проверки эффекта и поведения различных значений свойства BorderStyle предназначена программа Borders. Ее вывод уже был приведен на рисунке выше. Однако рекомендуется запустить этот пример и поэкспериментировать с ним некоторое время, чтобы понять все различия в формах. Главная форма этой программы содержит только группу переключателей и кнопку. Вторичная форма не имеет компонентов, и для ее свойства Position установлено значение poDefaultPosOnly, которое влияет на начальное положение вторичной формы, создаваемой при щелчке на этой кнопке.

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

procedure TForm1.BtnNewFormClick(Sender: TObject);
var
  NewForm: TForm2;
begin
  NewForm := TForm2.Create (Application);
  NewForm.BorderStyle := TFormBorderStyle (
    BorderRadioGroup.ItemIndex);
  NewForm.Caption := BorderRadioGroup.Items[
    BorderRadioGroup.ItemIndex];
  NewForm.Show;
end;

Этот код использует следующую хитрость: он отображает номер выбранного элемента в перечне TFormBorderStyLe. Данный метод срабатывает, поскольку переключателям указан тот же порядок, что и для значений перечня TFormBorderStyle. Метод BtnNewFormClick в таком случае копирует текст переключателя в заголовок вторичной формы. Эта программа обращается к вторичной форме TForm2, определенной во вторичном модуле программы, сохраненном как Second.pas. Поэтому для компиляции данного примера к разделу implementation модуля главной формы следует добавить следующие строки:

uses
  Second;

Исходный код здесь.

Источник:Кэнту М. Delphi 7:Для профессионалов