Fórum Delphi 2010 Pintar PageControl #378538
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
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; [/CODE] No formShow defina
Lembrando que :
OwnerDraw Para True
Alem disso tem que desabilitar os Themas ....
Project Options > Application >> Enabled RumTime Themes
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
[COCE]
with control dobegin
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; [/CODE] No formShow defina
procedure TForm1.FormShow(Sender: TObject); begin with Self.PageControl1 do begin ActivePageIndex:=0; Pages[0].brush.Color :=clSkyBlue; end; end;
Marco Salles
Curtir tópico
+ 0
Responder
Posts
29/05/2010
Marco Salles
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
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; [/CODE] No formShow defina
Lembrando que :
OwnerDraw Para True
Alem disso tem que desabilitar os Themas ....
Project Options > Application >> Enabled RumTime Themes
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
[COCE]
with control dobegin
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; [/CODE] No formShow defina
procedure TForm1.FormShow(Sender: TObject); begin with Self.PageControl1 do begin ActivePageIndex:=0; Pages[0].brush.Color :=clSkyBlue; end; end;
Responder
Gostei + 0
29/05/2010
Marco Salles
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
No formShow defina
Lembrando que :
OwnerDraw Para True
Alem disso tem que desabilitar os Themas ....
Project Options > Application >> Enabled RumTime Themes
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;
procedure TForm1.FormShow(Sender: TObject); begin with Self.PageControl1 do begin ActivePageIndex:=0; Pages[0].brush.Color :=clSkyBlue; end; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)
Inserção de url
Descrição
Url
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.
Aceitar