右键单击TOpenDialog中的文件时,使用自定义样式会显示无效字符

时间:2015-08-25 14:26:59

标签: delphi windows-10 delphi-xe8 vcl-styles topendialog

请参阅以下步骤重现。适用于XE2,但不适用于XE8。

  1. 创建一个新的VCL表单应用程序 - Delphi
  2. 在表单
  3. 上放置TButtonTOpenDialog
  4. 在按钮OnClick事件中调用OpenDialog1.Execute
  5. 运行程序,打开文件对话框,然后右键单击文本文件=>显示菜单项确定
  6. 转到项目/选项/应用程序/外观。启用并选择自定义样式(例如“Ruby Graphite”)并重新编译
  7. 运行程序,打开文件对话框,然后右键单击文本文件=>没有正确显示菜单项(显示无效字符)
  8. 使用XE8订阅更新1(以及Windows从8.1升级到10)进行测试

1 个答案:

答案 0 :(得分:17)

Windows 10在负责绘制shell弹出菜单的代码中引入了一些内部更改。因此,必须修改VCL样式代码以与Windows 10兼容。我刚刚报告了this to EMB

作为解决方法,您可以使用修复此问题的VCL Styles Utils项目(只需要将Vcl.Styles.Utils.Menus单元添加到项目中)。

检查下一个图像,左侧弹出菜单使用标准VCL样式,右侧菜单使用VCL Styles Utils项目。

enter image description here