Кент Рейсдорф. 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 содержит размер и положение панели. Этот параметр важен, так как фактически он сообщает вам точные размеры области для рисования.