установить цвет фона тематического компонента StatusBar - PullRequest
1 голос
/ 15 мая 2011

Как установить цвет фона тематического компонента TStatusBar? Когда я устанавливаю свойство color, оно работает, только если Enabled runtime themes отключено.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Не уверен, что это именно то, что вам нужно, но вы можете просто отключить рисование темы для определенного элемента управления, в данном случае для вашей строки состояния, например:

Uses
  uxTheme;

SetWindowTheme(StatusBar1.Handle, '', '');
1 голос
/ 15 мая 2011

Вы можете написать свое собственное событие OwnerDraw и нарисовать строку состояния (точнее: каждую панель на ней!) Своими цветами:

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;

Но с темами невозможно изменить цвет в Инспекторе объектов.

...