【发布时间】:2015-07-06 22:12:36
【问题描述】:
我刚刚从 Delphi 2009 升级到 Delphi XE8。这样做改变了我程序工具栏上按钮的外观。
使用 Delphi 2009 编译时,它看起来像这样:
但现在使用 Delphi XE8,它看起来像这样:
在我看来,这与 Down 属性有关。如果按钮的 Down 属性为 true,则其背景将为蓝色。如果我单击该按钮,则会将 Down 属性更改为 false,并且该按钮将失去蓝色背景。
有谁知道导致蓝色背景的原因以及如何消除它?
我使用的是 Windows 8.1。
跟进:David 关于这是 Windows 8.1 的默认显示的回答是正确的。检查其他程序,我看到他们也这样做。
我没想到这是默认设置,因为我用 Delphi 2009 编译的程序没有这样做。但正如 David 还解释的那样,这是因为 Delphi 2009 没有内置主题支持,但 Delphi XE8 有。 (它可能已经添加到 Delphi XE2 中,但不要引用我的话)
大卫提到清单是一个可能的原因。在这种情况下不是这样,但他提醒我我可能有多个清单,应该检查一下。
所以我的问题的最终答案是我不想消除蓝色背景。这是Windows 8.1默认显示向下按钮的方式,我想通过我的程序显示本机主题。
【问题讨论】:
-
一个版本是主题,另一个不是?
-
@DavidHeffernan - 我不使用主题。我的 Delphi 2009 程序只是在 Delphi XE8 中运行(仅修复了需要修复的内容以使其工作)。 Toolbar 是一个简单的 TToolbar,每个 Button 都是一个简单的 TToolButton。我没有对表格进行任何更改。如果有帮助,我可以提供一些相关的 DFM 文本。
-
@DavidHeffernan - 我做了一个测试:我添加了一个新的 TToolbar。我添加了一些 TToolButtons 到它。在 ToolButton 的 Object Inspector 中,我将 Down 设置为 true,背景变为蓝色。我取消选中 Down 将其设置回 false 并且蓝色消失了。
-
应用是否为主题?你有 comctl32 v6 清单吗?
-
我刚刚重新发现了我几年前提出的一个问题,并且可能涉及到我的“解决方案”。我会调查的。 stackoverflow.com/questions/4890805/…