Cor na Aba do TabSheet ??????
Pessoal,
Boa Tarde!
É possível mudar a cor do componente TabSheet? quando mudo a cor dele tudo bem mais a aba(orelhinha) continua com a cor default, voçês sabem de alguma propriedade onde possa mudar a cor?
Já conversei com várias pessoas e nada. Será que é um bug do Delhi?
Agradeço desde já!
Boa Tarde!
É possível mudar a cor do componente TabSheet? quando mudo a cor dele tudo bem mais a aba(orelhinha) continua com a cor default, voçês sabem de alguma propriedade onde possa mudar a cor?
Já conversei com várias pessoas e nada. Será que é um bug do Delhi?
Agradeço desde já!
Mmbarros
Curtidas 0
Respostas
Motta
27/07/2004
Segue o padrão windows, não muda que eu saiba, talvez indo no canvas.
GOSTEI 0
Fabio.hc
27/07/2004
Tente assim:
Coloque este evento em todas as TabSheet´s. Destaca a TabSheet selecionada.
Coloque este evento em todas as TabSheet´s. Destaca a TabSheet selecionada.
procedure TForm1.TabSheet1Hide(Sender: TObject); begin (sender as TTabSheet).Highlighted:=false; end; procedure TForm1.TabSheet1Show(Sender: TObject); begin (sender as TTabSheet).Highlighted:=true; end;
GOSTEI 0
Emerson Nascimento
27/07/2004
pra mudar a cor da ´orelha´, altere a propriedade OwnerDraw do PageControl para True e atribua as alterações no evento OnDrawTab.
GOSTEI 0
Mmbarros
27/07/2004
OK Emerso.en a aba recebe a cor porém não exibe o caption do TabSheet... De qualquer forma muito obrigado pela dica!
GOSTEI 0
Emerson Nascimento
27/07/2004
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
    if Active then
    begin
        Control.Canvas.Font.Color := clWhite;
        Control.Canvas.Brush.Color := clBlue;
    end
    else
    begin
        Control.Canvas.Brush.Color := clWindowText;
        Control.Canvas.Brush.Color := clBtnFace;
    end;
    Control.Canvas.FillRect( Rect );
    Control.Canvas.TextOut( Rect.Left+5,Rect.Top+4,TTabSheet(PageControl1.Pages[TabIndex]).Caption );
end;
begin
    if Active then
    begin
        Control.Canvas.Font.Color := clWhite;
        Control.Canvas.Brush.Color := clBlue;
    end
    else
    begin
        Control.Canvas.Brush.Color := clWindowText;
        Control.Canvas.Brush.Color := clBtnFace;
    end;
    Control.Canvas.FillRect( Rect );
    Control.Canvas.TextOut( Rect.Left+5,Rect.Top+4,TTabSheet(PageControl1.Pages[TabIndex]).Caption );
end;
GOSTEI 0
Sérgio Siqueira
27/07/2004
FCorTabSelecionada,
FCorTabNaoSelecionada: TColor;
FCorTabSelecionada := $00E6DEF7;
FCorTabNaoSelecionada := clWhite;
procedure TfrmPrincipal.pcPrincipalDrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
function ObterCor(Tab: Integer): TColor;
begin
if (pcPrincipal.TabIndex = TabIndex) then
Result := CorTabSelecionada
else
Result := FCorTabNaoSelecionada;
end;
begin
inherited;
Control.Canvas.Brush.Color := ObterCor(TabIndex);
Control.Canvas.FillRect(Rect);
pcPrincipal.canvas.font.color:=clBlack;
Control.Canvas.TextOut(Rect.left+2,Rect.top+2,TTabSheet(pcPrincipal.Pages[tabindex]).Caption);
pcPrincipal.Pages[TabIndex].Font.Color:=clblack;
end;
Marque a propriedade OwnerDraw no objecto inspector como true.
FCorTabNaoSelecionada: TColor;
FCorTabSelecionada := $00E6DEF7;
FCorTabNaoSelecionada := clWhite;
procedure TfrmPrincipal.pcPrincipalDrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
function ObterCor(Tab: Integer): TColor;
begin
if (pcPrincipal.TabIndex = TabIndex) then
Result := CorTabSelecionada
else
Result := FCorTabNaoSelecionada;
end;
begin
inherited;
Control.Canvas.Brush.Color := ObterCor(TabIndex);
Control.Canvas.FillRect(Rect);
pcPrincipal.canvas.font.color:=clBlack;
Control.Canvas.TextOut(Rect.left+2,Rect.top+2,TTabSheet(pcPrincipal.Pages[tabindex]).Caption);
pcPrincipal.Pages[TabIndex].Font.Color:=clblack;
end;
Marque a propriedade OwnerDraw no objecto inspector como true.
GOSTEI 0