Ups, ich habe völlig übersehen, dass TMenuItem an anderer Stelle aufgrund eines ganz anderen Kontextes bereits überschrieben wird. Das war auch der Grund, warum selbst CustomDraw nichts bewirkt hat.
Hat sich damit erledigt. Wen es interessiert, wie sich die Fragestellung lösen lässt:
Delphi-Quellcode:
TMenuItem = class(Menus.TMenuItem)
private
procedure MeasureItem(ACanvas: TCanvas; var Width, Height: Integer); override;
end;
procedure TMenuItem.MeasureItem(ACanvas: TCanvas; var Width, Height: Integer);
begin
inherited;
if Caption <> '-' then
Height := ...;
end;