Пришло время подробнее ознакомиться со свойствами компонент. И начнём мы с
базового элемента любого оконного приложения - формы. Свойств у формы
достаточно много, и в разных версиях Delphi их набор может немного
отличаться. Здесь будет рассмотрение свойств на основе Delphi 7.
![](/images/raznoe/01-4.gif)
Action - определяет объект TAction.
Это объект служит для быстрой привязки действий к компонентам, в особенности - к
пунктам меню и панелям инструментов. Но может быть привязан и к форме. Для
управления TAction служат редакторы TActionList со страницы
Standard и TActionManager со страницы Additional.
ActiveControl - определяет элемент, который
имеет в данный момент фокус ввода. Если выбрать какой-либо объект во время
разработки (design-time), то при запуске приложения этот объект и будет иметь
фокус ввода. Также свойство может быть полезно и во время выполнения (run-time)
- можно узнать, какой объект "держит" фокус в данный момент, а также можно
переместить фокус на любой из объектов. Пример: разместим на форме 2 кнопки -
Button1 и Button2, а также TTimer (страница System). Выбрав
элемент Timer1, дважды щёлкнем в Инспекторе объектов напротив надписи OnTimer на
вкладке Events, т.е. создадим обработчик события и напишем следующее:
ActiveControl:=Button2; Теперь, запустив программу, каждую секунду фокус
будет перемещаться на Button2.
Align - определяет выравнивание формы на
экране. Свойство принимает одно из следующих значений:
- alBottom - по нижнему краю;
- alClient - вся пользовательская (клиентская) область;
- alCustom - выравнивание определяется вызовом методом
объекта-родителя;
- alLeft - по левому краю;
- alNone - без выравнивания;
- alRight - по правому краю;
- alTop - по верхнему краю.
AlphaBlend - включает/выключает прозрачность
формы.
AlphaBlendValue - задаёт степень
непрозрачности формы: 0 - форма полностью невидима, 255 - полностью видима.
Прозрачность активируется только при установке свойства AlphaBlend в True.
Anchors - определяет направления, по которым
компоненты "привязываются" к форме. Пример: если установить у формы значения
akLeft и akRight этого свойства в True, и точно также сделать у кнопки, то при
изменении ширины формы размер кнопки (ширина) также будет изменяться.
AutoScroll - включает автоматическое
появление полос прокрутки (Scroll bars) на форме, когда размеров формы
недостаточно для отображения всех элементов.
AutoSize - включает автоматическое изменение
размеров формы согласно позициям размещённых на ней элементов.
BiDiMode - определяет двунаправленное
отображение элемента. В некоторых языках письмо осуществляется не слево-направо,
а наоборот. Это свойство создано как раз для этой цели.
BorderIcons - определяет множество кнопок,
которые отображаются в заголовке окна:
- biSystemMenu - единственный элемент, который не является
кнопкой - отвечает за системное меню окна, которое вызывается комбинацией
клавиш [Alt]+[Пробел].
- biMinimize - кнопка сворачивания (минимизации) окна;
- biMaximize - кнопка разворачивания окна;
- biHelp - кнопка справки.
Если хотя бы одна из кнопок сворачивания и разворачивания
включена, то независимо от состояния другой, отображаются обе (но вторая
естественно неактивна). Если выключены обе, они не отображаются вообще. Это не
зависит от Delphi - так устроена ОС Windows.
BorderStyle - определяет поведение границ
окна и общий тип окна:
- bsDialog - диалоговое окно (из кнопок - только "Закрыть",
иконки в заголовке окна нет);
- bsNone - "чистый лист" (отсутствие у окна границ и
заголовка) - применяется обычно для создания заставок во время запуска
программы;
- bsSingle - обычное окно, но с запретом изменения
размеров;
- bsSizeable - обычное окно (по умолчанию) - размеры формы
можно изменять;
- bsSizeToolWin - упрощённое окно с уменьшенным заголовком;
- bsToolWindow - упрощённое окно с уменьшенным заголовком
без возможности изменения размеров.
BorderWidth - ширина границы окна в пикселах.
Граница является невидимой и расположена в пользовательской части формы.
Caption - текст заголовка формы.
ClientHeight, ClientWidth -
размер клиентской (пользовательской) части формы, т.е. той, на которой
располагаются компоненты.
Color - цвет формы.
Constraints - определяет минимальные и
максимальные размеры высоты и ширины формы в пикселах. 0 - любое значение, т.е.
без ограничений.
Ctl3D - свойство определяет 3D-вид формы. При
выключенном - "плоское" изображение.
Cursor - курсор мыши в тот момент, когда он
находится над формой.
DefaultMonitor - определяет, на каком
мониторе появится форма. Имеет смысл применять это свойство только при наличии
более, чем одного монитора (например, если несколько экранов).
DockSite, DragKing и
DragMode - определяют поведение формы при осуществлении операций
Drag&Drop.
Enabled - отвечает за общую активность формы.
Если установлено в False, форма недоступна.
Font - шрифт, используемый на форме.
FormStyle - стиль формы или её поведение в
MDI-приложении (многооконное приложение, где дополнительные формы располагаются
"внутри" основной формы). Значения:
- fsNormal - обычная форма (значение по умолчанию);
- fsMDIChild - дочерняя (подчинённая) форма MDI-приложения;
- fsMDIForm - главная форма MDI-приложения;
- fsStayOnTop - форма находится поверх всех окон на экране.
Height - высота формы в пикселах. В отличие
от ClientWidth является высотой с учётом заголовка и границ формы.
HelpContext, HelpFile,
HelpKeyword, HelpType - свойства для связи
формы с файлом справки в формате *.hlp.
![](/images/sustem/03-3.gif)
AlphaBlend = True |
![](/images/sustem/05.gif)
BorderStyle = bsDialog |
![](/images/sustem/06.gif)
BorderStyle = bsToolWindow |
Hint - текст всплывающей подсказки.
HorzScrollBar - свойство определяет внешний
вид и поведение горизонтальной полосы прокрутки окна.
Icon - значок (иконка) формы. Отображается в
заголовке слева от заголовка. Задаётся файлом в формате *.ico.
KeyPreview - если свойство установлено в
True, то при нажатии клавиш сначала будут вызываться обработчики формы, а только
затем обработчики того компонента, который в данный момент имеет фокус ввода.
События, связанные с нажатием клавиш - OnKeyDown(), OnKeyPress(), OnKeyUp().
Left - позиция формы на экране (левого
верхнего угла) в пикселах.
Menu - позволяет выбрать один из
компонентов-меню, который станет главным меню окна, т.е. будет отображаться
вверху.
Name - имя формы как объекта. Может содержать
только латинские буквы, цифры и знак подчёркивания, и не может начинаться с
цифры. Фактически, это то имя, по которому в программе можно обратиться к форме.
ObjectMenuItem - используется при работе с
OLE-объектами и позволяет связать пункт меню и OLE-объект: когда объект выделен,
пункт меню активен и наоборот.
OldCreateOrder - определяет, когда происходят
события OnCreate() и OnDestroy() формы. Если установлено в False, то OnCreate()
произойдёт после вызова всех конструкторов, а OnDestroy() - после вызова всех
деструкторов. Начальное значение - False, изменять не рекомендуется.
ParentBiDiMode - изменение свойства BiDiMode
согласно значению объекта-предка формы.
ParentFont - изменение шрифта (Font) согласно
значению объекта-предка.
PixelsPerInch - пропорции шрифта в системе
(точек на дюйм).
PopupMenu - позволяет указать контекстное
меню (объект TPopupMenu) для формы. Это меню вызывается нажатием правой кнопки
мыши.
Position - определяет начальную позицию формы
на экране, т.е. в момент её появления. Основные значения:
- poDesigned - появление в том месте, в каком форма
расположена в design-time;
- poDesktopCenter - по центру рабочего стола (рекомендуемое
значение);
- poScreenCenter - по центру экрана;
- poMainFormCenter - по центру главной формы приложения
(для главной формы не имеет смысла).
PrintScale - определяет размеры формы при
выводе её изображения на печать.
Scaled - включает масштабирование формы в
соответствии с заданным значением свойства PixelsPerInch.
ScreenSnap - если установлено в True, то
форма будет автоматически "прилипать" к краям экрана в момент перемещения.
SnapBuffer - определяет расстояние (в
пикселах), на котором форма будет "прилипать" к краю экрана.
ShowHint - включает/выключает показ
всплывающей подсказки (Hint).
Tag - специальное свойство, которое есть у
всех объектов. Специального применения для этого свойства нет, поэтому оно
используется для разных целей в конкретной ситуации. Свойство удобно в том
случае, если нужно хранить некоторое целое число - не придётся заводить
дополнительную переменную.
Top - позиция формы (левого верхнего угла) на
экране в пикселах.
TransparentColor - включает/выключает
прозрачность определённого цвета формы.
TransparentColorValue - задаёт цвет, который
будет прозрачным.
UseDockManager - используется при реализации
Drag&Drop технологии, предоставляя дополнительные возможности этого метода
взаимодействия.
VertScrollBar - определяет внешний вид и
поведение вертикальной полосы прокрутки окна.
Visible - определяет видимость формы на
экране.
Width - ширина окна в пикселах, включая
границы.
WindowMenu - свойство-аналог свойства Menu,
но используемое при создании MDI-форм.
WindowState - одно из состояний окна:
- wsNormal - обычное состояние (занимает часть экрана);
- wsMinimized - окно свёрнуто;
- wsMaximized - окно развёрнуто на весь экран.
![](/images/sustem/02-2.gif) |
![](/images/sustem/04-1.gif)
TransparentColor = True |
В итоге мы получаем огромное количество свойств, способных
изменить как внешний вид формы, так и её поведение, а также поведение компонент,
расположенных на ней. Но данная статья незаметно познакомила Вас не только со
свойствами формы, но и со свойствами большинства компонент. Дело в том, что
компоненты имеют общих "предков", т.е. тех объектов, от которых они образованы,
поэтому свойства компонент очень похожи и большая их часть просто-напросто
совпадает. Если посмотреть на свойства кнопки (TButton), то сразу можно
заметить, что большинство свойств - те же самые, что и у формы. Это позволяет
быстро научиться работать с любым незнакомым объектом.
Примечания
Стоит сделать несколько примечаний насчёт свойств.
- Свойства прозрачности формы (AlphaBlend,
AlphaBlendValue, TransparentColor и TransparentColorValue)
корректно работают только на ОС Windows XP и следующих версиях. В предыдущих
версиях ОС изменение значения этих свойств не производит визуального
изменения формы.
- Свойства, названия которых начинаются со слова Parent
(англ. - родитель), в большинстве случаев связывают значения
некоторых свойств со значениями соответствующих свойств объекта-родителя.
Так, кнопка (TButton) имеет свойство ParentFont и свойство Font, отвечающее
за шрифта текста на этой кнопке. Но и сама форма имеет свойство Font. В
результате, если у кнопки установить ParentFont в True, а затем
изменить шрифт у формы, то шрифт у кнопки изменится соответствующим образом.
Это позволяет быстро изменять одни и те же свойства у большого числа
компонент. Другие подобные свойства - ParentShowHint,
ParentColor, ParentBiDiMode.
- Свойство Cursor, отвечающее за курсор, есть у
большинства компонент. Но при перемещении курсора его вид изменяется на тот,
который задан у самого "дальнего" объекта. Т.е. если и формы и у кнопки
заданы разные формы курсора, то при перемещении над кнопкой будет
использоваться курсор, заданный у самой кнопки. Число "вложений" одних
компонент в другие может быть довольно большим.
Заключение
В этой статье рассмотрены свойства формы и основные свойства
компонент. Изменяя свойства, можно настроить объекты так, как это требуется для
реализуемой программы. Объектно-ориентированное программирование в основном и
сводится к управлению свойствами объектов.
Автор: Ерёмин Андрей
|