100 компонентов общего назначения библиотеки Delphi5

       

Полоса состояния StatusBar


Компонент 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 := '';

На Рисунок 7.8 приведен пример текстового редактора на основе компонента RichEdit, содержащий полосу состояния. В ее первой панели отображается номер строки и символа, перед которым находится курсор, во второй — отображается, модифицирован текст в окне, или нет. В третьей панели отображается подсказка о назначении компонента, над которым в данный момент расположен курсор мыши.



Содержание раздела