Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Цвет шрифта и фон заголовков TPageControl в Windows 7 x64 [D7]


HF-Trade ©   (2011-01-21 10:31:00) 

Как изменить сабж?

В ХР Все работало отменно.
Работало так -

procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;  TabIndex: Integer; Const Rect: TRect; Active: Boolean);
begin
PageControl1.Canvas.Brush.Color := clBlack;
PageControl1.Canvas.FillRect(Rect);
PageControl1.Font.Color := clWhite;
PageControl1.Canvas.TextOut(Rect.TopLeft.X + 6,Rect.TopLeft.Y + 3, PageControl1.Pages[TabIndex].Caption);
end;

В Win7 событие OnDrawTab вообще не обрабатывается

Попробовал вот таким образом -

procedure TMainForm.Button1Click(Sender: TObject);
var
Rect: TRect;
I, OldBkMode: Integer;
begin
For I := 0 to PageControl1.PageCount - 1 do
 Begin
  Rect := PageControl1.TabRect(I);
  PageControl1.Canvas.Brush.Color := clBlack;
  PageControl1.Canvas.FillRect(Rect);
  PageControl1.Font.Color := clWhite;
  OldBkMode := SetBkMode(PageControl1.Canvas.Handle, TRANSPARENT);
  MainPC.Canvas.TextOut(Rect.TopLeft.X + 6, Rect.TopLeft.Y + 3, PageControl1.Pages[I].Caption);
  SetBkMode(PageControl1.Canvas.Handle, OldBkMode);
end;
end;

В результате -
Заголовки закладок заливаются, но цвет текста Caption'ов не меняется.
К тому же при наведении на заголовок, фон изменяется на начальный.


HF-Trade   (2011-01-21 10:34:00) [1]

MainPC - TPageControl1(не обращяйте внимания - корректировал сообщение, и забыл поправить...)


Наверх

Титульная страница Поиск, карта сайта Написать письмо