Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cambiar el color en un TTabSheet con XPMan incluido (https://www.clubdelphi.com/foros/showthread.php?t=58074)

zajoma 07-07-2008 19:05:28

Cambiar el color en un TTabSheet con XPMan incluido
 
Hola a todos

Estoy haciendo una aplicación que contiene un TPageControl y unas TabSheets. El problema que tengo es que cuando incluyo la unidad XPMan
para que me dibuje los controles estilo XP no puedo modificar el color por defecto que le pone delphi. Una ayudita...

white_zombie 07-07-2008 19:46:17

Hola, eso se soluciona poniendo a true la propiedad Ownerdraw del pagecontrol, pero al hacer esto deberás utilizar el evento Ondrawtab para pintar las pestañas.

Un saludo.

madmai 22-07-2008 08:48:01

podriais poner un pequeño ejemplito, gracias de antemano.

white_zombie 22-07-2008 17:27:10

Hola, crea un formulario con un pagecontrol con 3 pestañas y pega esto en el evento OnDrawTab del pagecontrol.

Código Delphi [-]
PageControl1.Canvas.FillRect(rect);

if TabIndex = 0 then
  begin
  PageControl1.Canvas.font.Color := $0053A6AC;
  PageControl1.Canvas.font.Style:=[];
  PageControl1.Canvas.textout(rect.left+4,rect.top+4,PageControl1.Pages[0].Caption);
    if Active then
      begin
        PageControl1.Canvas.font.Color := clPurple;
        PageControl1.Canvas.font.Style:=[fsBold];
        PageControl1.Canvas.textout(rect.left+5,rect.top+5,PageControl1.Pages[0].Caption);
      end;
  end;
if TabIndex = 1 then
  begin
  PageControl1.Canvas.font.Color := $0053A6AC;
  PageControl1.Canvas.font.Style:=[];
  PageControl1.Canvas.textout(rect.left+4,rect.top+4,PageControl1.Pages[1].Caption);
    if Active then
      begin
        PageControl1.Canvas.font.Color := clPurple;;
        PageControl1.Canvas.font.Style:=[fsBold];
        PageControl1.Canvas.textout(rect.left+5,rect.top+5,PageControl1.Pages[1].Caption);
      end;
  end;
if TabIndex = 2 then
  begin
  PageControl1.Canvas.font.Color := $0053A6AC;
  PageControl1.Canvas.font.Style:=[];
  PageControl1.Canvas.textout(rect.left+4,rect.top+4,PageControl1.Pages[2].Caption);
    if Active then
      begin
        PageControl1.Canvas.font.Color := clPurple;
        PageControl1.Canvas.font.Style:=[fsBold];
        PageControl1.Canvas.textout(rect.left+5,rect.top+5,PageControl1.Pages[2].Caption);
      end;
  end;

No olvides poner la propiedad ownerdraw a true.

El ejemplo como comprobaras le da un aspecto distinto al pagecontrol. Te pongo este ejemplo porque yo lo utilizo en mis aplicaciones y he copiado y pegado.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 13:20:40.

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