Author: Tomas Rutkauskas
How to draw colored text on a TStatusBar
Answer:
The status bar is a standard Windows control, and as such, displays the font in the
clBtnText value, which is set via the Control Panel. This color is black by
default, but it can vary due to the user's color scheme. Other standard Windows
controls, such as buttons, exhibit this identical behavior. The StatusBar and its
associated panels have an owner-draw capability that allow you to draw text in any
colors you want. Be sure to change the Style property of the TStatusBar.Panels to
OwnerDraw.
1 2 procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
3 Panel: TStatusPanel; const Rect: TRect);
4 begin5 if Panel = StatusBar.Panels[0] then6 begin7 StatusBar.Canvas.Font.Color := clRed;
8 StatusBar.Canvas.TextOut(Rect.Left, Rect.Top, 'Panel - 0')
9 end10 else11 begin12 StatusBar.Canvas.Font.Color := clGreen;
13 StatusBar.Canvas.TextOut(Rect.Left, Rect.Top, 'Panel - 1');
14 end;
15 end;