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.