Версия для печати

Цветной текст в TStatusBar

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

Цветной текст в TStatusBar.

Почему при изменении цвета шрифта в 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;