C++ Builder 10.2 Tokyo > PageControl > 탭 색상 변경 > 2004년 정보: 할 수 없다 | 다른 방법: 위화감

운영 환경
RAD Studio 10.2 Tokyo Update 3
Windows 10 Pro (64bit) バージョン 1803 (April 2018 Update)

원하는 동작


  • PageControl의 탭 색상 변경

  • 정보 1. Delphi 구현 예 (2004년)



  • 페이지 컨트롤의 탭 색상 변경 @ Delphi Q & A 게시판

  • 상기를 바탕으로 이하를 실장해 보았다.

    Unit1.cpp
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::PageControl1DrawTab(TCustomTabControl *Control, int TabIndex,
              const TRect &Rect, bool Active)
    {
        switch(TabIndex) {
        case 0:
            Brush->Color = clAqua;
            break;
        case 1:
            Brush->Color = clLime;
            break;
        default:
            Brush->Color = clGray;
            break;
        }
    
        if (Active) {
            Brush->Color = clYellow;
        }
    
        Control->Canvas->FillRect(Rect);
        Control->Canvas->TextOutW(Rect.Left+4, Rect.Top+4, PageControl1->Pages[TabIndex]->Caption);
    }
    //---------------------------------------------------------------------------
    

    탭의 색을 변경할 수 없습니다.



    정보 2. STACK OVERFLOW (2011년)



    How can I change the background color of my TTabSheets?
  • A. style 속성을 "tsFlatButtons"로 설정 by Johan
  • B. themes.pas를 참고하여 Form의 색을 바꾸는 by Peter Turner
  • ThemsesEnabled시는 clBtnHighlight로 한다


  • 아래 그림은 방법 A(tsFlatButtons로 한 경우)의 결과.


    아래 그림은 방법 B(clBtnHighlight로 한 경우)의 결과.


    A, B 어느 쪽의 대응에도 위화감을 느낀다.

    좋은 웹페이지 즐겨찾기