在 TOpenDialog 中右键单击文件时使用自定义样式显示无效字符
Using custom styles shows invalid characters when right-clicking a file in TOpenDialog
请参阅以下步骤进行重现。在 XE2 中运行良好但在 XE8 中运行不佳。
- 创建新的 VCL 表单应用程序 - Delphi
- 在表格上放置一个
TButton
和一个 TOpenDialog
- 在按钮
OnClick
事件中调用OpenDialog1.Execute
- 运行 程序,打开文件对话框,右键单击文本文件 => 显示菜单项 ok
- 前往 Project/Options/Application/Appearance。启用并选择自定义样式(例如"Ruby Graphite")并重新编译
- 运行 程序,打开文件对话框,然后右键单击文本文件 => 未正确显示菜单项(显示无效字符)
使用 XE8 订阅更新 1 进行测试(并且 Windows 从 8.1 升级到 10)
Windows 10 在负责绘制 shell 弹出菜单的代码中引入了一些内部更改。所以必须修改VCL Style代码才能兼容Windows 10.我刚刚报了this to EMB
作为解决方法,您可以使用解决此问题的 VCL Styles Utils 项目(只需将 Vcl.Styles.Utils.Menus
单元添加到项目中)。
查看下一张图片,左侧弹出菜单使用标准VCL样式,右侧菜单使用VCL Styles Utils
项目。
请参阅以下步骤进行重现。在 XE2 中运行良好但在 XE8 中运行不佳。
- 创建新的 VCL 表单应用程序 - Delphi
- 在表格上放置一个
TButton
和一个TOpenDialog
- 在按钮
OnClick
事件中调用OpenDialog1.Execute
- 运行 程序,打开文件对话框,右键单击文本文件 => 显示菜单项 ok
- 前往 Project/Options/Application/Appearance。启用并选择自定义样式(例如"Ruby Graphite")并重新编译
- 运行 程序,打开文件对话框,然后右键单击文本文件 => 未正确显示菜单项(显示无效字符)
使用 XE8 订阅更新 1 进行测试(并且 Windows 从 8.1 升级到 10)
Windows 10 在负责绘制 shell 弹出菜单的代码中引入了一些内部更改。所以必须修改VCL Style代码才能兼容Windows 10.我刚刚报了this to EMB
作为解决方法,您可以使用解决此问题的 VCL Styles Utils 项目(只需将 Vcl.Styles.Utils.Menus
单元添加到项目中)。
查看下一张图片,左侧弹出菜单使用标准VCL样式,右侧菜单使用VCL Styles Utils
项目。