问题
See steps below to reproduce. Works well in XE2 but not XE8.
- Create a new VCL Forms Application - Delphi
- Place a
TButton
and aTOpenDialog
on the form - In the button
OnClick
event callOpenDialog1.Execute
- Run the program, open the file dialog, and right-click on a text file => shows menu items ok
- Go to Project/Options/Application/Appearance. Enable and choose a custom style (such as "Ruby Graphite") and recompile
- Run the program, open the file dialog, and right-click a text file => does not show menu items correctly (invalid characters are shown)
Tested with XE8 Subscription Update 1 (and Windows upgraded from 8.1 to 10)
回答1:
Windows 10 introduces some internal changes in the code responsible to draw the shell popup-menus. So the VCL Style code must be modified to be compatible with Windows 10. I just reported this to EMB
As workaround you can use the VCL Styles Utils project which fixes this issue (only you need add the Vcl.Styles.Utils.Menus
unit to your project).
Check the next Image , The left popup-menu uses the standard VCL Styles,and the right menu uses the VCL Styles Utils
project.
来源:https://stackoverflow.com/questions/32206737/using-custom-styles-shows-invalid-characters-when-right-clicking-a-file-in-topen