O padrão Windows todo cinza não é muito atraente, por isso quando nos utilizarmos do PageControl podemos alterar suas cores e fontes da seguinte maneira:
-
Em primeiro lugar devemos alterar a propriedade OwnerDraw para TRUE; -
Depois implementar seu método DrawTab da seguinte maneira:
Control.Canvas.Font.Color:=clBlack;
//
// pinta a paleta / aba
Control.Canvas.brush.Color:=clSkyBlue;
PageControl1.Canvas.Rectangle(Rect);
Control.Canvas.TextOut(Rect.left+5,Rect.top+3,PageControl1.Pages[tabindex].Caption);
// pinta a parte interna (tabsheet)
PageControl1.Pages[TabIndex].brush.Color := Control.Canvas.brush.Color;
PageControl1.Pages[TabIndex].Repaint;
-
Caso a intenção seja manter cada aba com seu próprio estilo basta adicionar um CASE filtrando o índice das abas:
case TabIndex of
0: Control.Canvas.Font.Color:=clBlack;
1: Control.Canvas.Font.Color:=clWindow;
2: Control.Canvas.Font.Color:=clRed;
end;
Exemplo completo aqui.
0: Control.Canvas.Font.Color:=clBlack;
1: Control.Canvas.Font.Color:=clWindow;
2: Control.Canvas.Font.Color:=clRed;
end;
// pinta a parte interna (tabsheet)
ResponderExcluirPageControl1.Pages[TabIndex].brush.Color := Control.Canvas.brush.Color;
PageControl1.Pages[TabIndex].Repaint;
este exemplo não esta incompleto? que cor vai ficar a parte interna?
Faltou o código para a cor da parte interna.
ResponderExcluir