Delphi-Help

Главная Статьи Полоса состояния (StatusBar) Почему при изменении цвета шрифта в StatusBar’s он (шрифт) не меняется?

Почему при изменении цвета шрифта в StatusBar’s он (шрифт) не меняется?

Оцените материал
(0 голосов)


Почему при изменении цвета шрифта в StatusBar’s он (шрифт) не меняется?

Вопрос:

Почему при изменении цвета шрифта в StatusBar's он (шрифт) не меняется?

Ответ:

Status bar (строка состояния) - стандартный элемент управления Windows и цвет его шрифта задается через Control Panel (константа clBtnText). Этот цвет по умолчанию черный и может меняться при выборе пользователем той или иной цветовой схемы. У компонента ТStatusBar и его панелей есть возможность “owner-draw” – программной перерисовки, которая позволяет выводить на панель текст любого цвета. Измените свойство Style компонента TStatusBar.Panels на OwnerDraw.

Пример:

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
                                               const Rect: TRect);
begin
      if Panel = StatusBar.Panels[0] then
            begin
                  StatusBar.Canvas.Font.Color := clRed;
                  StatusBar.Canvas.TextOut(Rect.Left, Rect.Top, 'Panel - 0')
            end
      else
            begin
                  StatusBar.Canvas.Font.Color := clGreen;
                  StatusBar.Canvas.TextOut(Rect.Left, Rect.Top, 'Panel - 1');
            end;
end;
Другие материалы в этой категории: « Цветной текст в TStatusBar

Авторизация



Счетчики