Главная страница | назад

Article #17716: Changing font color on standard win controls.

 Question and Answer Database

FAQ2716D.txt   Changing font color on standard win controls.
Category   :VCL
Platform    :All
Product    :All 32 bit  

Why do changes to the StatusBar's font color not have 
any affect?

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 colors you want.


procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
  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');

7/16/98 4:31:28 PM

Last Modified: 01-SEP-99