Home » Tipps & Tricks » Komponenten » Sonstige » TabSheets farblich darstellen

TabSheets farblich darstellen

Um die TabSheets eines TPageControls farblich darzustellen, implementieren Sie das OnDrawTab-Ereignis des PageControls. Setzen Sie zunächst die Eigenschaft OwnerDraw der Komponente auf True, damit das Ereignis ausgelöst wird.

procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  CaptionX: Integer; 
  CaptionY: Integer;
  TabCaption: string;
begin
  with Control.Canvas do
  begin
    case TabIndex of
      0: 
        begin
          Brush.Color := clBtnFace;
          Font.Color := clWindowText;
        end;
        
      1: 
        begin
          Brush.Color := clMaroon;
          Font.Color := clWhite;
        end;
    end;
  
    TabCaption := PageControl1.Pages[TabIndex].Caption;
    CaptionX := Rect.Left + ((Rect.Right - Rect.Left - TextWidth(TabCaption)) div 2);
    CaptionY := Rect.Top + ((Rect.Bottom - Rect.Top - TextHeight('Gg')) div 2);
 
    FillRect(Rect);
    TextOut(CaptionX, CaptionY, TabCaption);
  end;
end;

Über den Parameter TabIndex lässt sich das TabSheet identifizieren. Ihnen stehen die gesamten Möglichkeiten der TCanvas-Klasse zur Gestaltung zur Verfügung.