Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2008
franfl franfl is offline
Miembro
 
Registrado: feb 2008
Posts: 88
Poder: 17
franfl Va por buen camino
Problemas PageControl en Builder

Buenas
Es la primera vez q entro en el foro, y es pq estoy muy bloqueado con una tonteria en un pagecontrol q tengo dentro de un form. No soi capaz de cambiar de color de las pestañas, y a veces no me cambia ninguna propiedad del formato.
Si alguien me puede ayudar se lo agradezco muchisimo
Gracias y felicidades por este foro tan bueno
Responder Con Cita
  #2  
Antiguo 25-02-2008
ucanneo ucanneo is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
ucanneo Va por buen camino
A mi tambien me pasaba que no podia cambiar la fuente, pero revisando la ayuda de vbuilder dice que tienes que cambiar la propiedad de ParentFont a true o false dependiendo de quien quieres que controle las propiedades de fuente, es decir si la tienes a false pues la podrás cambiar pero si está a true sólo cambiará desde un objeto padre


saludos

pd.- No se me habia ocurrido eso de cambiarle de color a las pestañas lo voy a intentar, pero pues no he visto donde
Responder Con Cita
  #3  
Antiguo 25-02-2008
franfl franfl is offline
Miembro
 
Registrado: feb 2008
Posts: 88
Poder: 17
franfl Va por buen camino
Gracias pero eso ya lo se, así modifico la fuente, negrita, etc, pero el color no soi capaz, y en un libro q lei dice q se puede modificar. No es una cosa muy necesaria pero mejoraría la estetica bastante, ya que tengo bastantes pestañas.
Gracias
Responder Con Cita
  #4  
Antiguo 28-05-2008
Avatar de Red_Leon
Red_Leon Red_Leon is offline
Miembro
 
Registrado: oct 2007
Ubicación: Castilla la Mancha
Posts: 27
Poder: 0
Red_Leon Va por buen camino
Tienes que poner la propiedad ownerdraw a true y en el evento ondrawTab un codigo como este

Código Delphi [-]
{Evento 'OnDrawTab' del PageControl, el cual se encarga de colorear las pestáñas}
procedure TForm.PageControlDrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  AText: string;
  APoint: TPoint;
begin
  with (Control as TPageControl).Canvas do
  begin
    {Color con el cual lo coloreara}
    if(active) then
    begin
      Brush.Color := rojo;
    end
    else
    begin
      Brush.Color := verde;
    end;
    FillRect(Rect);
    {Texto que se insertara en la pestaña}
    AText := TPageControl(Control).Pages[TabIndex].Caption;
    {Se colorea la pestana}
    with Control.Canvas do
    begin
      APoint.x := (Rect.Right - Rect.Left) div 2 - TextWidth(AText) div 2;
      APoint.y := (Rect.Bottom - Rect.Top) div 2 - TextHeight(AText) div 2;
      TextRect(Rect, Rect.Left + APoint.x, Rect.Top + APoint.y, AText);
    end;
  end;
end;

Última edición por dec fecha: 19-09-2008 a las 15:38:20.
Responder Con Cita
  #5  
Antiguo 19-09-2008
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 17
Elite237 Va por buen camino
Thumbs up colorear tpagecontrol de acuerdo a valor

hola, necesito de tu ayuda,he implementado el codigo que le diste a otro usuario del club, solo que mi duda es como hacer que al momento de colorear las pestañas solamente sea la que cumpla determinada condicion. En mi aplicacion se van creando consecutivamente las pestañas de acuerdo al numero de vendedoras que tengo, lo que quiero que haga es que si por ejemplo, una vendedora vendio 10,000 pesos(mexicanos)se pinte la pestaña de color verde, y en caso de que venda menos de 10,000 se pinte de color rojo.

Espero haberme dado a entender.
Responder Con Cita
  #6  
Antiguo 01-10-2008
M@R!N@ M@R!N@ is offline
Miembro
 
Registrado: feb 2008
Posts: 21
Poder: 0
M@R!N@ Va por buen camino
Hola espero que no sea muy tarde, pero lo pongo por si te sirve...

Para poder cambiar el color de tus pestañas tienes que hacer la propiedad OwnerDraw=true y en el evento OnDrawTab esto:

Código:
 
TPageControl *pageControl = dinamic_cast<TPageControl*>Control); //Puntero al TPageControl que recibe el evento
pageControl->Canvas->Brush->Color = clRed; //Color que quieres ponerle a las pestañas
 pageControl->Canvas->FillRect(Rect); //Para pintarlas
DrawText(pageControl->Canvas->Handle,pageControl->Pages[TabIndex]->Caption.c_str(),pageControl->Pages[TabIndex]->Caption.Length(), const_cast<TRect*>(&Rect), DT_CENTER | DT_VCENTER | DT_SINGLELINE); //Para que se vea tu texto después de pintarlas
Por cierto, si quieres pintar de diferente color cada pestaña. basta con que evalues el valor de TabIndex que te regresa el evento para saber en que pestaña estás y en base a esto puedes cambiar el color según la pestaña en el brush, por ejemplo:


Código:
 
TPageControl *pageControl = dinamic_cast<TPageControl*>Control);
if(TabIndex==0)
   {
   pageControl->Canvas->Brush->Color = clRed;
   }
else if(TabIndex==1)
   {
   pageControl->Canvas->Brush->Color = clBlue;
   }

pageControl->Canvas->FillRect(Rect);
DrawText(pageControl->Canvas->Handle,pageControl->Pages[TabIndex]->Caption.c_str(),pageControl->Pages[TabIndex]->Caption.Length(), const_cast<TRect*>(&Rect), DT_CENTER | DT_VCENTER | DT_SINGLELINE);
Esto hace que la primera pestaña se pinta roja, y la segunda en azul, pruébalo y espero que te sirva. Hasta luego!

Última edición por M@R!N@ fecha: 01-10-2008 a las 05:18:22.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con el debugger de C++ Builder 2007 en Windows Vista perucha C++ Builder 3 14-09-2007 22:52:07
Problemas y dudas con Word en Delphi y/o Builder sethnight Varios 0 29-08-2007 15:38:29
problemas con diferente versiones report builder buzon Impresión 0 02-05-2007 18:28:23
Problemas al imprimir dbmemos en report builder Jorge Taveras Impresión 9 05-10-2005 12:40:53
Problemas violación clave ajena desde Builder melanthea C++ Builder 5 25-06-2004 18:42:11


La franja horaria es GMT +2. Ahora son las 12:14:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi