Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Изменить цвет у grip-а TStatusBar


Автор: Gershkovich 22.9.2009, 13:14
Всем привет!
Собсно сабж. 
Некрасиво выходит: меняю цвет статус бара на гломурно-розовый, а grip остается по плебейски серым.
Как быть ?
Заранее спасибо.

Автор: Keeper89 22.9.2009, 21:13
Код в студию.

Вот http://delphi.about.com/od/vclusing/a/statusbar_owner.htm на всякий случай.

Автор: Gershkovich 23.9.2009, 09:59
Собственно  кода никакого нет.
Я просто меняю свойство Color у StatusBar-a в Object inspector-е.
Получается картина такая  как на скриншоте: сама панель имеет нежно-желтый цвет,
а grip  остается приежним - серым.
http://ipicture.ru/

Я было подумал что grip - это картинка, которая рисуется отдельно,
и пытался загрузить свою. Но как видно на скриншоте (изображение глаза), это не так.


ЗЫ За ссылку спасибо. Полезная.


Автор: Romikgy 23.9.2009, 15:32
Код

procedure TCustomStatusBar.CreateParams(var Params: TCreateParams);
const
  GripStyles: array[Boolean] of DWORD = (CCS_TOP, SBARS_SIZEGRIP);
begin
  InitCommonControl(ICC_BAR_CLASSES);
  inherited CreateParams(Params);
  CreateSubClass(Params, STATUSCLASSNAME);
  with Params do
  begin
    Style := Style or GripStyles[FSizeGrip and FSizeGripValid];
    if ThemeServices.ThemesEnabled then
      WindowClass.style := WindowClass.style or CS_HREDRAW or CS_VREDRAW
    else
      WindowClass.style := WindowClass.style and not (CS_HREDRAW or CS_VREDRAW);
  end;
end;

самому рисовать надо 
SizeGrip в False и рисуй ибо этот краешек рисует винда
а цвет рисуется 
Код

procedure TCustomStatusBar.CreateWnd;
begin
  ValidateSizeGrip(False);
  inherited CreateWnd;
  SendMessage(Handle, SB_SETBKCOLOR, 0, ColorToRGB(Color));
  UpdatePanels(True, False);
  if FSimpleText <> '' then
    SendMessage(Handle, SB_SETTEXT, 255, Integer(PChar(FSimpleText)));
  if FSimplePanel then
    SendMessage(Handle, SB_SIMPLE, 1, 0);
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)