Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Color del Caption en un TabSheet (https://www.clubdelphi.com/foros/showthread.php?t=60929)

JoseFco 19-10-2008 21:53:59

Color del Caption en un TabSheet
 
"Tolomeo se mudo al Polo Norte"

TOPX 19-10-2008 22:20:29

Hola,

http://www.clubdelphi.com/foros/showthread.php?t=40795

Caro 19-10-2008 23:38:00

Hola Jose, también lo puedes hacer de esta forma, utilizando la función DrawText para darle formato al texto.

Código Delphi [-]
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
 Re : TRect;
 Titulo : String;
begin
 Titulo := PageControl1.Pages[TabIndex].Caption;
 Re := Rect;
 
 if Active then
  PageControl1.Canvas.Font.Color := clRed
 else
  PageControl1.Canvas.Font.Color := clBlack;
   
  DrawText(               
    PageControl1.Canvas.Handle, PChar(Titulo), Length(Titulo), Re,
    DT_CENTER or DT_VCENTER or DT_SINGLELINE);
end;

El parametro Active te indica si ese TabSheet esta activo si es asi pinta de rojo, otra cosita debes colocar a True la propiedad OwnerDraw del PageControl para que haga el pintado, en el otro hilo no estaba especificado eso.

Si quieres que todos se pinten de un color entonces le quitas la condición y paar no repetir PageControl1 utilizas With.

Saluditos

JoseFco 20-10-2008 00:30:09

"Tolomeo se mudo al Polo Norte"

Caro 20-10-2008 03:13:39

Cita:

Empezado por JoseFco (Mensaje 321016)
Es cosa de ir jugando con los colores y las posiciones.

No te estoy entendiendo muy bien, que es lo que no te satisface, si quieres pintar cada caption de los tabSheet de diferente color, puedes utilizar el parametro TabIndex.

Código Delphi [-]
 ................
 Re := Rect;
 
 Case TabIndex of
  0 : PageControl1.Canvas.Font.Color := clRed;
  1 : PageControl1.Canvas.Font.Color := clYellow;
  2 : PageControl1.Canvas.Font.Color := clGreen;
  else
   PageControl1.Canvas.Font.Color := clBlack;
 end;
   
 DrawText(               
    PageControl1.Canvas.Handle, PChar(Titulo), Length(Titulo), Re,
    DT_CENTER or DT_VCENTER or DT_SINGLELINE);

Saluditos

JoseFco 20-10-2008 13:25:20

"Tolomeo se mudo al Polo Norte"

JoseFco 20-10-2008 22:09:35

"Tolomeo se mudo al Polo Norte"

JoseFco 25-10-2008 13:52:11

"Tolomeo se mudo al Polo Norte"

JoseFco 26-10-2008 22:29:33

"Tolomeo se mudo al Polo Norte"

JoseFco 27-10-2008 20:13:19

"Tolomeo se mudo al Polo Norte"


La franja horaria es GMT +2. Ahora son las 00:04:03.

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