Использование пользовательских стилей показывает недопустимые символы при щелчке правой кнопкой мыши по файлу в TOpenDialog

См. шаги ниже для воспроизведения. Хорошо работает в XE2, но не XE8.

  • Создайте новое приложение VCL Forms - Delphi
  • Поместите a TButton и a TOpenDialog в форму
  • На кнопке OnClick вызов события OpenDialog1.Execute
  • Запустите программу, откройте диалоговое окно файла и щелкните правой кнопкой мыши текстовый файл = > показывает пункты меню ok
  • Перейдите в раздел "Проект/Параметры/Приложение/Внешний вид". Включите и выберите собственный стиль (например, "Ruby Graphite" ) и перекомпилируйте
  • Запустите программу, откройте диалоговое окно файла и щелкните правой кнопкой мыши текстовый файл = > не отображает пункты меню правильно (отображаются недопустимые символы)

Протестировано с обновлением подписки XE8 1 (и Windows обновлена ​​с 8.1 до 10)

Ответ 1

Windows 10 вводит некоторые внутренние изменения в коде, ответственном за рисование всплывающих меню оболочки. Поэтому код VCL Style должен быть изменен для совместимости с Windows 10. Я только что сообщил это для EMB

В качестве обходного пути вы можете использовать проект VCL Styles Utils, который исправляет эту проблему (вам нужно добавить только блок Vcl.Styles.Utils.Menus в свой проект),

Проверьте следующее изображение. В левом всплывающем меню используются стандартные стили VCL, а в правом меню используется проект VCL Styles Utils.

введите описание изображения здесь