Ver Mensaje Individual
  #2  
Antiguo 27-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola nefy,

El color lo toma de la variable privada FBodyColor que desafortunadamente no se refleja en ninguna propiedad. Sin embargo es sencillo agregarla si estás dispuesto a modificar el código fuente.

Los pasos no son muchos ni complicados:

1.

En la declaración de la clase TdxCustomWinXPBar en la unidad dxWinXPBar.pas agregas el método privado:

Código Delphi [-]
procedure SetBodyColor(Value: TColor);

que implementas así:

Código Delphi [-]
procedure TdxCustomWinXPBar.SetBodyColor(Value: TColor);
begin
  if FBodyColor <> Value then
  begin
    FBodyColor := Value;
    Self.Invalidate;
  end;
end;

Esto es necesario para obligar el repintado cuando se cambie el color.

2.

Agregas la propiedad en la sección protected:

Código Delphi [-]
property BodyColor: TColor read FBodyColor write SetBodyColor;

3.

Publicas la propiedad en la clase TdxWinXPBar:

Código Delphi [-]
TdxWinXPBar = class(TdxCustomWinXPBar)
published
  property BodyColor;
  ...
end;

4.

Recompilas y listo; ahora dispones de la propiedad BodyColor que puedes modificar desde el inspector de objetos.

Claro que, como el nombre lo indica, BodyColor sólo afecta el color del cuerpo de la componente y no el del encabezado. Supongo que podrá modificarse esto también pero hay que examinar con cuidado el método Paint de TdxCustomWinXPBar.

// Saludos

Última edición por roman fecha: 27-08-2004 a las 21:02:54.
Responder Con Cita