Извлечь значок из стиля VCL и использовать его в качестве значка меню, работает не для всех стилей.

Мне нужно заменить значок главного меню (в частности, значок справки) значком из текущего используемого стиля VCL (наше приложение показывает этот значок в правой части строки меню, и использование значка выглядит странно который извлекается из файла ресурсов, который не соответствует активной теме).

Я не могу найти способ извлечь изображение из стиля, а затем использовать его в качестве значка меню. Кто-нибудь сделал это?


Обновление: это не рисование стилизованного значка (как в предыдущем вопросе), а получение в главном меню тематического значка (а не ресурса без темы или стандартного значка).


Обновление 2: если я получу элемент стиля и нарисую его в TBitmap, он будет работать, когда стиль — «Windows», но не для других тем.

  // Need to populate the image from the theme
  LDetails := StyleServices.GetElementDetails(twHelpButtonNormal);

  bitmap := Tbitmap.Create;
  bitmap.Height := 16;
  bitmap.width := 16;
  StyleServices.DrawElement(bitmap.Canvas.Handle, LDetails, bitmap.Canvas.ClipRect);

  HelpMenuItem.Bitmap := bitmap;

Элемент есть, но у него нет значка.

 Стиль Windows по умолчанию Со стилем


person mmmm    schedule 04.01.2017    source источник
comment
Разве вы не задавали тот же вопрос совсем недавно: stackoverflow.com/q/41201617/2292722   -  person Tom Brunberg    schedule 04.01.2017
comment
Смотрите обновление, не тот же вопрос - просто очень похожее звучание.   -  person mmmm    schedule 04.01.2017
comment
Итак, отличается ли рисование стилизованного значка на кнопке от пункта меню? Просто спрашиваю.   -  person Tom Brunberg    schedule 04.01.2017
comment
@TomBrunberg или, если на то пошло, на временную TBitmap, которая затем при необходимости назначается кнопке или меню.   -  person Remy Lebeau    schedule 04.01.2017
comment
Я попробую вышеуказанное предложение.   -  person mmmm    schedule 04.01.2017
comment
См. вышеуказанное обновление, где работает в одном стиле, но не в другом.   -  person mmmm    schedule 16.01.2017
comment
Мне сейчас это 12 месяцев, но с тех пор я пробовал его с Delphi 10.2.2 и получаю такое же поведение, оно работает только в том случае, если используется стиль Windows.   -  person mmmm    schedule 19.01.2018