- •Источник: ©а.Я.Архангельский. 100 компонентов общего назначения библиотеки Delphi5
- •1. Компоненты ввода и отображения текстовой информации
- •1.1. Краткое описание компонентов
- •1.2 Отображение текста в надписях компонентов Label и Panel
- •1.3 Окна редактирования Edit и MaskEdit
- •1.4 Многострочные окна редактирования Memo и RichEdit
- •3.3.5 Компоненты выбора из списков — ListBox, CheckListBox и ComboBox
Источник: ©а.Я.Архангельский. 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 (не изменяемый).