Delphi 2010 Pintar PageControl
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
Curtidas 0
Respostas
Marco Salles
29/05/2010
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;
GOSTEI 0
Marco Salles
29/05/2010
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;
GOSTEI 0