- •Источник: ©а.Я.Архангельский. 100 компонентов общего назначения библиотеки Delphi5
- •1. Компоненты ввода и отображения текстовой информации
- •1.1. Краткое описание компонентов
- •1.2 Отображение текста в надписях компонентов Label и Panel
- •1.3 Окна редактирования Edit и MaskEdit
- •1.4 Многострочные окна редактирования Memo и RichEdit
- •1.5 Компоненты выбора из списков — ListBox, CheckListBox и ComboBox
- •1.6 Таблица строк — компонент StringGrid
- •2 Активизация действий. Кнопка tButton
Источник: ©а.Я.Архангельский. 100 компонентов общего назначения библиотеки Delphi5
1. Компоненты ввода и отображения текстовой информации
1.1. Краткое описание компонентов
В библиотеке визуальных компонентов Delphi существует множество компонентов, позволяющих отображать, вводить и редактировать текстовую информацию. В таблице 1 приведен их перечень с краткими характеристиками и указанием основных свойств, содержащих отображаемый или вводимый текст.
Таблица 1. Компоненты ввода и отображения текстовой информации
Пикто-грамма |
Компонент |
Страница палитры |
Описание |
|
Label (метка) |
Standard |
Отображение текста, который не изменяется пользователем. Можно изменить оформление текста: цвет метки и текста. Отображаемый текст можно получить(изменить) через свойство Caption. |
|
Panel (панель) |
Standard |
Компонент является контейнером для группирования элементов управления, но может использоваться и для отображения текста с возможностями объемного оформления. Основное свойство — Caption (как правило, оставляют пустым). |
|
Edit (окно редактирования) |
Standard |
Отображение, ввод и редактирование однострочных текстов. Имеется возможность оформления объемного бордюра. Содержимое (текст) можно получить(изменить) через свойство Text. |
|
MaskEdit (окно маскированного редактирования) |
Additional |
Используется для форматирования данных или для ввода символов в соответствии с шаблоном. Основные свойства — Text и EditText. |
|
Memo (многострочное окно редактирования) |
Standard |
Отображение, ввод и редактирование многострочных текстов. Имеется возможность оформления объемного бордюра. Строки текста доступны через свойство Lines. |
|
ListBox (окно списка) |
Standard |
Отображение стандартного окна списка Windows, позволяющего пользователю выбирать из него пункты. Элементы списка доступны через свойство Items. |
|
ComboBox (редактируемый список) |
Standard |
Объединяет функции ListBox и Edit. Пользователь может либо ввести текст, либо выбрать его из списка. Элементы списка доступны через свойство Items. |
|
StringGrid (таблица строк) |
Additional |
Отображение текстовой информации в таблице из строк и столбцов с возможностью перемещаться по строкам и столбцам и осуществлять выбор. Строки, записанные в ячейках таблицы можно получить через свойство Cells. |
1.2 Отображение текста в надписях компонентов Label и Panel
Для отображения различных надписей на форме используются в основном компоненты Label и Panel.
Label — этометка, специально предназначенная для отображения текстов.
Panel – это панель, основное назначение которого компоновка компонентов в окне формы. Однако, панель можно использовать и для вывода текстов.
Примеры вывода текста в компонентах приведены на рис. 1-2.
Рис. 1 Примеры вывода текста в компоненте Label
Рис. 2 Примеры вывода текста в компоненте Panel
Тексты, отображаемые в перечисленных компонентах, определяются значением их свойства Caption. Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения. Например:
Label1.Caption := 'Новый текст';
Если требуется отобразить числовую информацию, можно воспользоваться функциями FloatToStr и IntToStr, переводящими соответственно числа с плавающей запятой и целые в строку. Для формирования текста, состоящего из нескольких фрагментов, можно использовать операцию «+», которая для строк означает их склеивание (конкатенацию).
Например, если в программе имеется целочисленная переменная I, отображающая число сотрудников некоторой организации, то вывести в метку Label1 информацию об этом можно оператором:
Label1.Caption := 'Число сотрудников: '+IntToStr(I);
Свойство Color во всех компонентах определяет цвет фона, а подсвойство Color свойства Font (записывается Font.Color)- цвет шрифта. Например, в большинстве меток (кроме верхней) на рис. 1 задан цвет фона равным clWhite — белый. Если цвет специально не задавать, то цвет фона обычно сливается с цветом контейнера, содержащего метку, так что фон просто не заметен.
Для метки Label цвет и шрифт — единственно доступные элементы оформления надписи. Компонент Panel имеют свойства
BorderStyle, определяющее рамку текста — бордюр.
BevelInner, BevelOuter, BevelWidth, BorderWidth, которые предоставляют богатые возможности оформления надписи, как вы можете видеть на рис. 2.
Таким образом, с точки зрения оформления выводимого текста максимальные возможности дает Panel и минимальные — Label.
Размещение всех рассматриваемых компонентов на форме определяется, в частности, свойствами:
Тор - координата верхнего края (отступ в пикселях от верхней границы родительского компонента),
Left - координата левого края,
Height - высота,
Width - ширина.
Имеются также свойства, определяющие изменение размера компонента при изменении пользователем во время выполнения приложения размеров окна. Это общие свойства всех оконных компонентов:
Align - выравнивание компонента по всей верхней, левой, правой, нижней частям контейнера или по всей его клиентской области,
Anchors - привязка сторон компонента к сторонам контейнера,
Constraints - ограничения допустимых изменений размеров.
Учтите, что использование в свойстве Anchors одновременной привязки компонента к противоположным сторонам контейнера приведет к растягиванию или сжатию компонента при изменении пользователем размеров окна. При этом в метках в ряде случаев наблюдаются неприятности, связанные с перемещением надписей (если они, например, выровнены по центру). Чтобы избежать этих неприятностей, надо в обработку события формы OnResize вставить операторы, перерисовывающие компоненты методом Repaint, например:
Label1.Repaint;
Размер меток Label определяется также свойством AutoSize. Если это свойство установлено в true, то вертикальный и горизонтальный размеры компонента определяются размером надписи. Если же AutoSize= false, то выравнивание текста внутри компонента определяется свойством Alignment, которое позволяет выравнивать текст по левому краю, правому краю или центру клиентской области метки.
В панели Panel также имеется свойство AutoSize, но оно не относится к размерам надписи Caption. Однако, свойство выравнивания Alignment работает и для панели.
В метке Label имеется свойство Wordwrap — допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строчку. Чтобы такой перенос мог осуществляться, надо установить свойство WordWrap= true, свойство AutoSize= false (чтобы размер компонента не определялся размером надписи) и сделать высоту компонента такой, чтобы в нем могло поместиться несколько строк (см. пример правой нижней метки на рис. 1. Если WordWrap=false, AutoSize=false, то длинный текст, не помещающийся в рамке метки, просто обрезается (см. пример левой нижней метки на рис. 1.
В панели размещение надписи в нескольких строках невозможно.
Для отображения текстовой информации с дополнительной возможностью прокрутки длинных текстов можно использовать также окна редактирования Edit и MaskEdit в режиме Readonly (не изменяемый).