And here is a doAdvancedDrawItem method that works with older Delphi versions (tested with Delphi 2007)
procedure THeaderMenuItem.DoAdvancedDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);
begin
{$IF declared(TStyleManager)}
ACanvas.Brush.Color := TStyleManager.ActiveStyle.GetStyleColor(scPanelDisabled);
ACanvas.Font.Color := TStyleManager.ActiveStyle.GetStyleFontColor(sfWindowTextNormal);
{$ELSE}
ACanvas.Brush.Color := clDkGray;
ACanvas.Font.Color := clWhite;
{$IFEND}
ACanvas.Font.Style := [fsBold];
ACanvas.FillRect(ARect);
ACanvas.TextRect(ARect, ARect.Left + 3, ARect.Top + 3, StripHotkey(Caption));
end;
To get it to compile with Delphi 2007, just remove the unit namespaces from the uses list. Adjust the colors to your liking.