PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Delphi 2010 Pintar PageControl #378541

29/05/2010

0

Este Post é uma continuação do Chamado https://www.devmedia.com.br/forum/delphi/378524-Pintar-PageControl.html   Pq eu não estou conseguindo Enviar mais Post neste tópico. O Forum ainda não esta 100% Aberto Por JOSE LUIZ DE MEDEIROS de Ponte Nova MG    
Bem mais simples do que qq codigo que se possa usar no evento DrawTab e cetar a propriedade OwnerDraw Para True ( aonde de fato acontecem as coisas colorir e etc... ) é simplesmente usar Panel prenchendo toda a superficie de cada TTabSheet e escolher a cor a  gosto
Mas se quiseres ainda optar por codificação segue  
  with control do
    begin
      case TabIndex of
        0: Canvas.Font.Color:=clGreen;
        1: Canvas.Font.Color:=clred;
      end;
      // pinta a paleta
      case TabIndex of
        0:Canvas.brush.Color:=clSkyBlue;
        1: Canvas.brush.Color:=clYellow;
      end;
  end;
  with TPagecontrol(control) do
    begin
      Canvas.Rectangle(Rect);
      control.Canvas.TextOut(Rect.left+5,Rect.top+3,PageControl1.Pages[tabindex].Caption);
      Pages[TabIndex].Font.Color:=Control.Canvas.Font.Color;
      // pinta a parte interna (tabsheet)
      Pages[TabIndex].brush.Color := Control.Canvas.brush.Color;
    end;
  No formShow defina  
procedure TForm1.FormShow(Sender: TObject);
begin
  with Self.PageControl1 do
    begin
       ActivePageIndex:=0;
       Pages[0].brush.Color :=clSkyBlue;
    end;
end;
  Lembrando que : OwnerDraw Para True   Alem disso tem que desabilitar os Themas ....   Project Options > Application >> Enabled RumTime Themes
Marco Salles

Marco Salles

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar