Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2 семестр.doc
Скачиваний:
42
Добавлен:
27.05.2015
Размер:
777.73 Кб
Скачать

2.3. Методы

С визуальными компонентами, как и с другими объектами, связано большое количество методов, позволяющих создавать и разрушать объекты, прорисовывать их, отображать, скрывать и др.

Процедура SetFocus устанавливает фокус ввода на оконный элемент управления. Если элемент управления в данный момент времени не способен получать фокус ввода, то возникает ошибка. Поэтому в случае вероятного возникновения ошибки целесообразно предварительно выполнить соответствующую проверку с помощью функции CanFocus: Boolean, возвращающей значение True, если управляющий элемент может получить фокус ввода.

Элемент управления не может получать фокус ввода, если он находится в выключенном состоянии, и его свойство Enable имеет значение False.

Пример получения компонентом Edit1 фокуса ввода:

If Edit1.CanFocus then Edit1.SetFocus; {перед получением фокуса производится проверка на возможность передачи фокуса компоненту}

Метод Clear служит для очистки содержимого компонентов, которые могут содержать внутри себя текстовую информацию.

Пример очистки содержимого компонентов ListBox1 и Memo1:

ListBox1.Clear;

Меmo1.Clear;

Метод Refresh используется для обновления элемента управления, т.е. имеющееся изображение элемента стирается и перерисовывается. Обычно метод вызывается автоматически при необходимости.

3. Работа с текстом

3.1. Использование надписей

Надпись представляет собой нередактируемый текст и часто используется в качестве заголовков для других управляющих элементов, которые не имеют своего свойства Caption. Наиболее часто для отображения надписей используется компонент Label (метка).

Свойство AutoSize типа Boolean служит для управления автоматической коррекцией размеров компонента Label в зависимости от текста надписи. Если свойство имеет значение True (по умолчанию), то компонент Label изменяет свои размеры соответственно содержащемуся в нем тексту, заданному в свойстве Caption.

Свойство Alignment типа TAlignment задает способ выравнивания текста внутри компонента Label и может принимать одно следующих значений:

taLeftJustify – выравнивание по левому краю;

taCenter – центрирование;

taRightJustify – выравнивание по правому краю.

Если свойство AutoSize равно True, то свойство Alignment не действует.

Свойство WordWrap типа Boolean позволяет управлять автоматически переносом слов на другую строку. По умолчанию свойство WordWrap имеет значение Fаlsе, и перенос слов заголовка не происходит. Свойство WordWrap не действует, если свойство AutoSize имеет значение True.

Свойство Transparent типа Boolean определяет прозрачность или закраску надписи. Цвет закрашивания устанавливается свойством Color. По умолчанию свойство Transparent равно False и надпись не прозрачна.

Для отображения нередактируемого текста, кроме Label, также используют StaticText. По функциональному назначению Label и StaticText практически не отличаются. Однако компонент StaticText является оконным компонентом и может отображать вокруг себя рамку, вид которой определяется свойством BorderStyle типа TStaticBorderStyle.

Отобразить нередактируемый текст можно и с помощью других компонентов, например Edit, установив его свойству ReadOnly значение True.

Пример вывода надписи с помощью компонента Edit:

Edit1.ReadOnly:=True;

Edit1.Соlor := clBtnFace;

Edit1.Ctl3D := false;

Edit1.BorderStyle := bsNone;

Edit1.Text := 'Отображение текста';

StaticText — метка, специально предназначенная для отображения текстов. Тексты, отображаемые в компоненте, определяются значением свойства Caption. Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения.

Свойство BorderStyle определяет рамку текста — бордюр.

При стиле sbsNone метка StaticText по виду не отличается от метки Label. Вероятно, если уж использовать бордюр, то наиболее приятный стиль sbsSunken.

В метке StaticText перенос длинного текста осуществляется автоматически, если значение AutoSize установлено в false и размер компонента достаточен для размещения нескольких строк.

Компонент StatusBar представляет собой ряд панелей, отображающих полосу состояния в стиле Windows.

Свойство SimplePanel определяет, включает ли полоса состояния одну или множество панелей. Если SimplePanel = true, то вся полоса состояния представляет собой единственную панель, текст которой задается свойством SimpleText. Если же SimplePanel = false, то полоса состояния является набором панелей, задаваемых свойством Panels. В этом случае свойство SizeGrip определяет, может ли пользователь изменять размеры панелей в процессе выполнения приложения.

Каждая панель полосы состояния является объектом типа TStatusPanels. Свойства панелей вы можете задавать специальным редактором наборов. Вызвать редактор можно тремя способами: из Инспектора Объектов кнопкой с многоточием около свойства Panels, двойным щелчком на компоненте StatusBar или из контекстного меню, выбрав команду Panels Editor.

В окне редактора вы можете перемещаться по панелям, добавлять новые или уничтожать существующие. При перемещении по панелям в окне Инспектора Объектов вы будете видеть их свойства.

Основное свойство каждой панели — Text, в который заносится отображаемый в панели текст. Его можно занести в процессе проектирования, а затем можно изменять программно во время выполнения. Другое существенное свойство панели — Width (ширина).

Программный доступ к текстам отдельных панелей можно осуществлять двумя способами: через индексированное свойство Panels или через его индексированное подсвойство Items.

Например, два следующих оператора дадут идентичный результат:

StatusBar1.Panels[0].Text := 'текст 1'; или

StatusBar1.Panels.Items[0].Text := 'текст 1';

Оба они напечатают текст «текст 1» в первой панели.

Количество панелей полосы состояния можно определить из подсвойства Count свойства Panels.

Например, следующий оператор очищает тексты всех панелей:

for i := 0 to StatusBar1.Panels.Count - 1 do StatusBar1.Panels[i].Text := '';