Mudar a cor de uma tabsheet delphi
Estou precisando alterar a cor das tabsheets de um pagecontrol no delphi7 porem de todas as dicas na inter nenhuma deu resultado, alguem teria alguma ideia do que pode ser feito
o codigo a baixo foi testado e não deu certo
case TabIndex of //quantidade de pages(abas) que terá seu pagecontrol.
0: Control.Canvas.brush.Color:=clgreen;
1: Control.Canvas.brush.Color:=clred;
2: Control.Canvas.brush.Color:=clblue;
3: Control.Canvas.brush.Color:=clYellow;
4: Control.Canvas.Font.Color:=clMaroon;
5: Control.Canvas.Font.Color:=clWhite;
end;
Control.Canvas.FillRect( Rect );
PageControl1.canvas.font.color:=clblue; //cor da aba do tabsheet
Control.Canvas.TextOut(Rect.left+2,Rect.top+2,TTabSheet(PageControl1.Pages[tabindex]).Caption);
PageControl1.Pages[TabIndex].Font.Color:=clblack;
o codigo a baixo foi testado e não deu certo
case TabIndex of //quantidade de pages(abas) que terá seu pagecontrol.
0: Control.Canvas.brush.Color:=clgreen;
1: Control.Canvas.brush.Color:=clred;
2: Control.Canvas.brush.Color:=clblue;
3: Control.Canvas.brush.Color:=clYellow;
4: Control.Canvas.Font.Color:=clMaroon;
5: Control.Canvas.Font.Color:=clWhite;
end;
Control.Canvas.FillRect( Rect );
PageControl1.canvas.font.color:=clblue; //cor da aba do tabsheet
Control.Canvas.TextOut(Rect.left+2,Rect.top+2,TTabSheet(PageControl1.Pages[tabindex]).Caption);
PageControl1.Pages[TabIndex].Font.Color:=clblack;
Victor Hugo
Curtidas 0
Respostas
Natanael Ferreira
19/05/2022
Fiz um teste com este seu código e alterou as cores do Tabsheet mas somente as abas da Tab.
Para que seu código funcione altere a propriedade OwnerDraw do PageControl para True e coloque este seu código no evento OnDrawTab do PageControl.
Testa aí.
Para que seu código funcione altere a propriedade OwnerDraw do PageControl para True e coloque este seu código no evento OnDrawTab do PageControl.
Testa aí.
GOSTEI 0
Victor Hugo
19/05/2022
Fiz um teste com este seu código e alterou as cores do Tabsheet mas somente as abas da Tab.
Para que seu código funcione altere a propriedade OwnerDraw do PageControl para True e coloque este seu código no evento OnDrawTab do PageControl.
Testa aí.
A propriedade OwnerDraw está ativa, deveria estar tudo certo porém simplesmente não acontece nada, andei pesquisanod um pouco mais e encontrei em um outro forum alguem descrevendo o mesmo erro e que disse que era a versão do delphi(no caso eu uso o delphi 7) ou a versão do windows, por isso recorri ao forum aqui para tentar encontrar outra solução
Para que seu código funcione altere a propriedade OwnerDraw do PageControl para True e coloque este seu código no evento OnDrawTab do PageControl.
Testa aí.
GOSTEI 0
Victor Hugo
19/05/2022
Fiz um teste com este seu código e alterou as cores do Tabsheet mas somente as abas da Tab.
Para que seu código funcione altere a propriedade OwnerDraw do PageControl para True e coloque este seu código no evento OnDrawTab do PageControl.
Testa aí.
A propriedade OwnerDraw está ativa, deveria estar tudo certo porém simplesmente não acontece nada, andei pesquisanod um pouco mais e encontrei em um outro forum alguem descrevendo o mesmo erro e que disse que era a versão do delphi(no caso eu uso o delphi 7) ou a versão do windows, por isso recorri ao forum aqui para tentar encontrar outra soluçãoPara que seu código funcione altere a propriedade OwnerDraw do PageControl para True e coloque este seu código no evento OnDrawTab do PageControl.
Testa aí.
GOSTEI 0
João Costa
19/05/2022
Sei que já se passou muito tempo, mas consegui fazer com que esses TabSheet fique com a cor desejada, simplesmente, colocando um Panel e alinhando alClient para em seguida colocar os componentes sobre este Panel. Fica até bem legal, já que pode fazer isso, com cores diferentes em todas as abas.
GOSTEI 0
Arthur Heinrich
19/05/2022
Para mim, deu certo aqui, com a propriedade PageControl1.OwnerDraw:=True e evento OnDrawTab para pintar:
type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; procedure PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin Control.Canvas.Brush.Color:=clBlue; Control.Canvas.Brush.Style:=bsSolid; Control.Canvas.Font.Color:=clWhite; Control.Canvas.FillRect(Rect); Control.Canvas.TextOut(Rect.Left+2,Rect.Top+2,(Control as TPageControl).ActivePage.Caption); end;
GOSTEI 0