Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Funcion OndrawTab funciona dependiendo del PC (https://www.clubdelphi.com/foros/showthread.php?t=85520)

Parsec 27-03-2014 18:17:55

Funcion OndrawTab funciona dependiendo del PC
 
Hola,

Pongo la propiedad OwnerDraw del PageControl en true y pongo el siguiente código en su evento OnDrawTab:


Código Delphi [-]
procedure TForm1.PageControl1DrawTab(
  Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  R: TRect;
  Texto: String;

begin
  if Active then
  begin
    Control.Canvas.Font.Color := clRed;
    Control.Canvas.Font.Style := [fsBold];
  end;

  Texto := PageControl1.Pages[TabIndex].Caption;

  R := Rect;
  Control.Canvas.FillRect(R);

  if not Active then
    InflateRect(R, 0, -3);

  DrawText(
    Control.Canvas.Handle, PChar(Texto), -1, R,
    DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;

En mi portátil funciona perfectamente, lo llevo al PC del cliente y no funciona, muestra las pestañas en blanco.
He comprobado que cuando abre el formulario Form1.Show en mi portátil ejecuta la función OndrawTab y en el PC del cliente no pasa por ella, como si no existiese.

¿Alguien me puede explicar que sucede?
Muchas gracias

Chris 27-03-2014 19:58:19

Tu PC no utiliza los temas de Windows?
La PC del Cliente utiliza los temas de Windows?

ecfisa 27-03-2014 20:40:25

Hola Parsec.

Con seguridad el otro equipo tiene Windows 64 bits, aquí está reportado el error + solución: Report #: 19859 - WMDrawItem fails under WOW64.

Y en este otro: TPageControl OnDrawTab and Win64, encontrarás el código en una unidad para agregarlo a tu aplicación.

Saludos :)

Parsec 27-03-2014 21:16:12

Hola Ecfisa,

exacto!!!, es de 64 bits.

Muchas gracias...algún día tendré que ver la forma de invitaros a algo.


La franja horaria es GMT +2. Ahora son las 01:53:55.

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