在我的Delphi 10.2 VCL应用程序中,默认的现代Windows10
VCL样式似乎存在问题。在内置的Delphi组件上,如TFontDialog
,用户无法在下拉组件中使用垂直滚动。无法点击箭头,也无法拖动滚动条,只能在鼠标滚轮工作的情况下上下滚动。如果我使用较旧的VCL样式(例如旧的XP样式Windows
),这不是问题,用户可以使用所有控件,一切都按预期工作。
TFontDialog.Create(Form1);
TFontDialog.Execute;
颜色下拉组件中的垂直滚动不可用(以红色突出显示),只能滚动鼠标,用户无法单击箭头或拖动滚动条。
TOpenPictureDialog.Create(Form1);
TOpenPictureDialog.Execute;
下拉组件中的垂直滚动不可用(以红色突出显示)。
TDirectoryListBox.directory := BrowseForFolder('Choose a folder', '', false);
颜色下拉组件中的垂直滚动不可用(以红色突出显示),只能滚动鼠标,用户无法单击箭头或拖动滚动条。
我尝试了来自@RRUZ的建议,以回应另一个问题(Delphi 10 Seattle - Vista Dialogs bug with VCL Styles)来添加VCL Styles Utils项目文件,但我无法检测到我的其他文件中的任何更改使用部分。
编辑:Delphi 10.2版本25.0.29899.2631
答案 0 :(得分:2)
这并不能解决问题,但作为一种解决方法,我可以接受。 @AndreasRejbrand在评论中建议我不要使用VCL样式。我无法做到这一点,但我从他那里得到了禁用相关组件样式的想法。
@RRUZ在How to disable vcl styles on external dll forms in delphi中描述如何使TStyleManager.SystemHooks
和@Arioch在Delphi. How to disable Vcl Themes for TFileOpenDialog and TOpenDialog中描述如何为特定组件取消TStyleManager.SystemHooks
。这导致我在TForm1.FormCreate
中采用以下解决方法:
with TStyleManager do
SystemHooks := SystemHooks - [shDialogs];
TFontDialog
看起来并没有什么不同(向下箭头除外),但垂直滚动条现在功能齐全。