设置主题状态栏组件的背景颜色

时间:2011-05-15 19:24:47

标签: delphi delphi-2007

如何设置主题TStatusBar组件的背景颜色?当我设置color属性时,它仅在Enabled runtime themes被禁用时才有效。

提前感谢。

2 个答案:

答案 0 :(得分:2)

不确定这是否正是您所需要的,但您可以简单地禁用特定控件的主题绘画,在本例中为状态栏,如下所示:

Uses
  uxTheme;

SetWindowTheme(StatusBar1.Handle, '', '');

答案 1 :(得分:1)

您可以使用自己的颜色编写自己的OwnerDraw-Event并绘制StatusBar(准确地说:每个面板!):

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
begin
  with StatusBar.Canvas do begin
    Brush.Color := clRed;
    FillRect(Rect);
    TextOut(Rect.Left, Rect.Top, 'Panel '+IntToStr(Panel.Index));
  end;
end;

但是有了主题,就无法在Object-Inspector中更改颜色。