Ver Mensaje Individual
  #2  
Antiguo 28-03-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.319
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A mi un código como este me funciona (lo he probado en una versión más nueva de Delphi, eso sí):

Código Delphi [-]
procedure TForm3.HeaderControl1DrawSection(HeaderControl: THeaderControl;
  Section: THeaderSection; const Rect: TRect; Pressed: Boolean);
var
  oldColor:TColor;
begin
  if (Section.Index = 2) then begin
    HeaderControl.Canvas.FloodFill(Rect.Left + 1, Rect.Top + 1, clInfoBk, TFillStyle.fsSurface);
    HeaderControl.Canvas.Brush.Color := clInfoBk;
    HeaderControl.Canvas.Pen.Style := TPenStyle.psClear;
    HeaderControl.Canvas.Rectangle(Rect);
  end;
end;



Lo único importante, es que la tercera columna (en este caso Index=2) hay que definirla con la propiedad Style=hsOwnerDraw.

Si no defines así esa propiedad, el evento no salta sobre esa columna. Es decir, en mi ejemplo, que tiene definidas tres columnas, y sólo la tercera definida como hsOwnerDraw, el evento OnDrawSection sólo salta en la tercera.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita