Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прил 3.1 (к ЛР3) Компоненты ввода текстовой информации.doc
Скачиваний:
10
Добавлен:
06.03.2016
Размер:
296.45 Кб
Скачать

Источник: ©а.Я.Архангельский. 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 (не изменяемый).