Кент Рейсдорф. BORLAND C++BUILDER. Раздел 3

Кент Рейсдорф. BORLAND C++BUILDER. Страница 374

(

if (StatusBar->SimplePanel)

StatusBar->SimpleText = Application->Hint; else

StatusBar->Panels->Items[0]->Text = Application->Hint;

}

Теперь не имеет значения, какой тип строки состояния вы используете. Конечно, здесь подразумевается, что указания выводятся в первой панели строки состояния. Если вы используете с этой целью какие-либо другие панели, перепишите этот код соответствующим образом.

Пользовательские панели строки состояния

Ранее я говорил, что панель может быть либо текстовой (psText), либо нарисованной пользователем (psOwnerDraw). Если для панели установлен стиль psOwnerDraw, то на вас ложится ответственность за все, что будет отображено в этой панели. Маловероятно, что вы собираетесь создавать себе трудности, выводя в пользовательскую панель обычный текст. Панель поль­зователя обычно нужна для вывода в строку состояния какого-либо значка

или растрового изображения. Независимо от того, что будет нарисовано на панели, последовательность ее создания остается одной и той же.

1. Установите для свойства Style панели значение psOwnerDraw (обычно через редактор панелей строки состояния).

2. Напишите обработчик события OnDrawPanel.

Очевидно, что в данном случае реальная работа начинается при создании обработчика события OnDrawPanel. Заготовка функции обработчика события OnDrawPanel выглядит следующим образом:

void fastcall TMainForm::StatusBarDrawPanel(TStatusBar* StatusBar,

TStatusPanel* Panel, const TRects Rect)

{ }

Параметр StatusBar этой функции является указателем на строку состо­яния. Как правило, у вас уже есть указатель на строку состояния (свойство Name компонента StatusBar), так что от этого параметра не так много пользы. Свойство Panel является указателем на конкретную панель, которую необ­ходимо нарисовать в данный момент. Вы можете использовать этот параметр, чтобы определить, какая панель должна быть выведена, если ваша строка состояния имеет более одной панели пользователя. Параметр Rect содержит размер и положение панели. Этот параметр важен, так как фактически он сообщает вам точные размеры области для рисования.

Web-дизайн (с) 2010 All rights reserved