Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Color y texto en las pestañas de un PageControl

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Color y texto en las pestañas de un PageControl Responder citando

Buenos días,
en el foro de Delphi he encontrado la manera de hacer algon que quiero hacer yo en C++ Builder.
Copio el tema a ver si alguien sabe como hacer esto en C++. Lo he intentado pero no lo consigo.
Gracias

Escrito por "Bicho" en clubdelphi.com
_________________________________________________________________________
Hola, el PageControl, coge el color de su objeto parent de forma automática. Así pues, si le cambias el color al form o el Panel donde esté metido el PageControl, éste coge su mismo color. Lo que pasa, es que, de primera, las pestañas no cogerán ese color. Debes poner la propiedad OwnerDraw del PageControl a True y ya todo tendrá el mismo color.
Que ocurre ahora, que no se ven los captions de las pestañas, no? Muy fácil, dibujamos ese texto sobre el canvas del panel, de esta manera (sobre el evento DrawTab del PageCotrol):

Código Delphi [-]

procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
with PageControl1.canvas do begin
fillrect(rect);
font.Color := clBlack; //con éste color ya se verá, ves jugando con el que te guste más
textout(rect.left+2,rect.top+2,PageControl1.Pages[TabIndex].Caption);
end;
end;
___________________________________________________________________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola, en el evento OnDrawTab:
Código:
TCanvas* canvas = Control->Canvas;
canvas->FillRect(Rect);
canvas->Font->Color = clBlack; //con éste color ya se verá, ves
                               //jugando con el que te guste más
canvas->TextOut(Rect.Left+2,Rect.Top+2, PageControl1->Pages[TabIndex]->Caption);
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Muchas gracias,
funciona perfectamente.

Un saludo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: que extraño Responder citando

estimados.

he puesto codigo en mi pagecontro en el metodo que indican y su codigo, lo tengo en modo tabbutton y no me cambia la fuente del page activo. el pagecontrol debe tener alguna propiedad activa para que pueda tomar el cambio de font al momento de estar en una hoja activa?.

puse un punto de seguimiento en evento de pintado y nunca se mete. que extraño.... alguien podria ayudarme al respecto?.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Tienes que tener la propiedad OwnerDraw = true

Pruebalo así:
Código:
void __fastcall TForm1::PageControl1DrawTab(TCustomTabControl *Control,
      int TabIndex, const TRect &Rect, bool Active)
{
   TCanvas* canvas = Control->Canvas;
   canvas->Brush->Color = clLime;
   canvas->FillRect(Rect);
   canvas->Font->Color = clRed; //con éste color ya se verá, ves
                                //jugando con el que te guste más
   canvas->TextOut(Rect.Left+2,Rect.Top+2, PageControl1->Pages[TabIndex]->Caption);
}


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: muchas gracias Responder citando

muchas gracias, un pequeño detalle hace grandes diferencias Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.