- •Глава 4. Базовые компоненты интерфейса
- •4.1. Компонент форма
- •4.1.1. Основные свойства формы
- •4.1.2. Разновидности форм
- •4.1.3. События формы
- •4.1.4. Методы формы
- •4.2. Создание пиктограммы для приложения
- •4.3. Общие свойства и события визуальных компонентов
- •4.3.1. Иерархия классов Delphi
- •4.3.1. Ключевые свойства элементов управления
- •4.3.2. Виды событий для элементов управления
- •4.4. Определение принадлежности к классу и приведение типов
- •4.5. Компоненты для отображения текста
- •4.5.1. Компонент метка Label
- •4.5.2. Компонент текстовая метка StaticText
- •4.6. Кнопки
- •4.6.1. Стандартная кнопка Button
- •4.6.2. Кнопка с рисунком BitBtn
- •4.6.3. Кнопка с фиксацией SpeedButton
- •4.7. Image – компонент для работы с изображениями
- •Image1.Picture.LoadFromFile('картинка.Bmp);
- •Interface
- •Implementation
- •Interface
- •Implementation
- •4.8. Поддержка справочной службы - всплывающие подсказки
- •Контрольные вопросы
- •Лабораторная работа
4.3.1. Ключевые свойства элементов управления
Свойства позволяют управлять внешним видом и поведением компонентов при проектировании и при выполнении приложения. Свойства компонентов, доступные при проектировании приложения, также доступны при его выполнении. Вместе с тем, есть свойства времени выполнения, которые доступны только при выполнении приложения. Обычно установка значений большинства свойств компонентов выполняется на этапе проектирования с помощью инспектора объектов, однако свойствам часто присваиваются значения с помощью оператора присваивания в редакторе кода:
Label1.Caption:='Это текстовая метка';
Label1.Font.Color:=clRed;
В табл. 4.4 приведены ключевые свойства визуальных компонентов (сгруппированные по назначению).
Таблица 4.4. Общие свойства компонентов
Свойство |
Описание |
Характеристики, задающие размер и положение компонента |
|
Align |
Определяет способ выравнивания компонента внутри контейнера, в котором он находится. Выравнивание используется в случаях, когда требуется, чтобы какой-либо интерфейсный элемент занимал определенное положение относительно содержащего его контейнера, независимо от изменения размеров последнего. Свойство может принимать следующие значения: alNone – выравнивание не используется, компонент по умолчанию находится на том месте, куда был помещен при разработке приложения; alTop – компонент перемещается в верхнюю часть контейнера, высота компонента не меняется, |
Продолжение табл. 4.4
|
а его ширина становится равной ширине контейнера; alBottom – аналогично действию alTop, но компонент перемещается в нижнюю часть контейнера; alLeft – компонент перемещается в левую часть контейнера, ширина компонента не меняется, его высота становится равной высоте контейнера; alRight – аналогично действию alLeft, но компонент перемещается в правую часть контейнера; alClient – компонент занимает всю поверхность контейнера |
BoundsRect |
Задает прямоугольник, занимаемый компонентом |
Brush |
Задает характеристики кисти, которой закрашивается поверхность компонента |
ClientHeight |
Свойство задает высоту клиентской области элемента управления в пикселях. Для большинства элементов управления это свойство совпадает с их высотой, задаваемой свойством Height, но для формы и ряда других компонентов в клиентскую область не входит обрамление (заголовок, главное меню, рамка) |
ClientWidth |
Свойство задает ширину клиентской области элемента управления в пикселях. Для большинства элементов управления это свойство совпадает с их шириной, задаваемой свойством Width, но для формы и ряда других компонентов в клиентскую область не входит обрамление (заголовок, главное меню, рамка) |
Height Width |
Свойства задают соответственно высоту и ширину элемента управления в пикселях |
Left Top
|
Определяют координаты левого (left) верхнего (top) угла компонента относительно содержащего его контейнера, например, формы или панели. Форма также является компонентом, для нее координаты отсчитываются от левого верхнего угла экрана монитора |
Характеристики, определяющие внешний вид компонента |
|
AutoScroll |
Определяет необходимость отображения на экране полос прокрутки, когда компоненты, находящиеся в элементе управления, не полностью отображаются в нем |
Caption |
Содержит строку (тип string) для надписи заголовка компонента. Отдельные символы в заголовке могут быть подчеркнуты, они обозначают комбинации клавиш быстрого доступа: нажатие клавиши с указанным символом при нажатой клавише <Alt> вызывает то же действие, |
Продолжение табл. 4.4
|
что и щелчок мышью на элементе управления с этим заголовком. Для определения комбинации клавиш необходимо поставить в заголовке перед соответствующим символом знак &, например: radioButton1.Caption:= '&M'; //<Alt>+<M> radioButton2.Caption:= '&F'; //<Alt>+<F> |
Color |
Определяет цвет фона (поверхности) компонента. Значение свойства color представляет собой четырехбайтовое шестнадцатеричное число. Старший байт указывает палитру из которой берется цвет и обычно равен коду $00. Младшие три байта задают RGB-интенсивности (красного, зеленого и синего цветов), которые при смешивании дают требуемый цвет. Когда значение байта, содержащего код интенсивности, равно FF, соответствующий базовый цвет имеет максимальную интенсивность, если значение байта равно 00, то соответствующий базовый цвет выключен. Например, черному цвету соответствует код $00000000, белому – $00FFFFFF, красному – $00000FF, зеленому – $0000FF00, синему – $00FF0000. Часто удобно задавать цвета с помощью констант. Отображаемый цвет зависит от параметров видеокарты и монитора, в первую очередь, от установленного цветового разрешения. При использовании констант, приведенных в табл. П.1, отображается цвет, наиболее близкий к указанному константой. Другой набор констант (табл. П.2) указывает цвета в составе системной палитры Windows. Определяемый такой константой цвет зависит от выбранной цветовой схемы |
Ctl3D |
Свойство задает трехмерное отображение элемента управления (при значении true) или двумерное отображение (при значении false) |
Cursor |
Свойство целого типа, задающее форму курсора мыши, когда он находится над элементом управления. Delphi предлагает более двадцати предопределенных видов указателя мыши и соответствующих им констант, основными из которых являются следующие: crNone – указатель не виден; – crDefault; – crHelp; – crHourGlass; – crAppStart; – crHandPoint; – crDrag; и др. |
Продолжение табл. 4.4.
Enabled |
Определяет доступность элемента для редактирования, то есть его способность реагировать на сообщения, поступающие от мыши, клавиатуры или таймера. Если свойство имеет значение true (по умолчанию), то компонент доступен, в противном случае нет. Заголовок или текст недоступного компонента становятся бледными. Блокировку компонента можно выполнить программно следующим образом: Editl.Enabled := false; |
Font |
Составное свойство, устанавливает параметры шрифта для компонентов, которые могут содержать текст:
Определить программно начертание можно следующим образом: Edit1.Font.Style:=[fsBold, fsItalic]; Тексты в Delphi пишутся только горизонтально |
Hint |
Свойство, задающее содержание всплывающей подсказки – небольшого справочного окна возле элемента, на котором останавливается указатель мыши. Подсказка |
Продолжение табл. 4.4
|
представляет собой поле желтого (по умолчанию) цвета с текстом, поясняющим назначение или использование компонента. Для вывода подсказки необходимо задать свойству ShowHint значение true |
HorzScrollBar VertScrollBar |
Сложные свойства, задающие характеристики горизонтальной и вертикальной полос прокрутки:
|
ReadOnly |
Определяет, разрешено ли компоненту, связанному с вводом и редактированием информации, изменять находящийся в нем текст. Если свойство имеет значение true, то текст в элементе редактирования доступен только для чтения. Если свойство имеет значение false (по умолчанию), то текст можно редактировать |
Продолжение табл. 4.4
TabOrder |
Определяет порядок получения компонентами контейнера фокуса при нажатии клавиши <Таb>, то есть последовательность номеров обхода (табуляции) компонентов. По умолчанию эта последовательность определяется при конструировании формы порядком помещения компонента в контейнер: для первого компонента свойство TabOrder имеет значение 0, для второго 1 и т. д. Для изменения этого порядка нужно установить соответствующие значения свойству TabOrder компонентов контейнера. Порядок табуляции компонентов в контейнере не зависит от порядка табуляции компонентов в других контейнерах. Два компонента не могут иметь одинаковые значения свойства TabOrder; система Delphi осуществляет за этим контроль, автоматически корректируя неправильные значения. Компонент, свойство TabOrder которого имеет значение 0, получает управление первым. Изменять порядок табуляции компонентов можно также с помощью диалогового окна из меню Edit/Tab Order |
TabStop |
Дает возможность включить/отключить возможность получения фокуса ввода для компонента при нажатии клавиши <Tab> |
Text |
Свойство определяет текст, связанный с компонентом Значение свойства является содержимое компонента |
ShowHint |
Свойство определяет, будет ли выводиться краткая справка, текст которой задается в свойстве Hint, когда курсор находиться над элементом управления |
Visible |
Свойство управляет видимостью компонента. Если оно установлено в значение true, то компонент виден пользователю, при значении false компонент скрыт от пользователя. Если компонент не виден, им все равно можно управлять программно |
Характеристики, обеспечивающие отношение "родитель – потомок" |
|
ControlCount |
Задает число младших компонент элемента управления. Сами компоненты задаются свойством Controls |
Controls [index] |
Задает массив всех младших компонент текущего элемента управления. Нумерация начинается с нуля |
Parent |
Определяет компонент, являющийся "родителем", по отношению к текущему элементу управления |
Продолжение табл. 4.4
ParentColor |
Если свойство установлено в значение true, то компонент использует свойство Color своего "родителя", иначе используется собственное свойство Color |
ParentCtl3D |
Если свойство установлено в значение true, то компонент использует свойство Ctl3D своего "родителя", иначе используется собственное свойство Ctl3D |
ParentFont |
Если свойство установлено в значение true, то компонент использует свойство Font своего "родителя", в противном случае используется собственное свойство Font |
ParentShowHint |
Если свойство установлено в значение true, то компонент использует свойство ShowHint своего "родителя", иначе используется собственное свойство ShowHint |
Характеристики, обеспечивающие перетаскивание компонента |
|
DragCursor |
Определяет вид указателя мыши при перемещении компонентов. Значения этого свойства не отличаются от значений свойства Cursor. По умолчанию свойству устанавливается значение crDrag |
DragMode |
Используется при программировании операций, связанных с перемещением объектов способом drag-and-drop (переместить и оставить), и определяет поведение элемента управления при его перемещении мышью. Свойство DragMode может принимать одно из двух значений: dmAutomatic и dmManual. По умолчанию оно имеет значение dmManual, и элемент управления перемещать нельзя, пока не будет вызван метод BeginDrag. Если этому свойству задать значение dmManual, то элемент управления можно перемещать мышью в любой момент. Кроме установки свойству DragMode требуемого значения, программист должен выполнить кодирование действий, которые управляют перемещением элемента, то есть подготовить обработчики событий, связанных с операцией перемещения |
Другие важные характеристики |
|
Canvas |
Содержит графические средства, используемые для изображения на экране графического элемента управления |
Name |
Имя переменной, ассоциированной с данным элементом управления, используется для идентификации элемента |
PopupMenu |
Свойство определяет связанное с элементом управления контекстное меню. Предварительно меню надо создать |
Окончание табл. 4.4
HelpContext |
Задает номер раздела справочной системы, который будет выведен если при выполнении программы компонент находится в фокусе ввода и нажата клавиша <F1>. Если номер равен нулю, используется значение этого свойства старшей компоненты |
Tag |
Свойство типа longint, не используемое Delphi. В свойстве можно определить данные, которые потом могут использоваться при решении задач |