德尔福工具栏样式已更改

时间:2015-07-06 22:12:37

标签: delphi button toolbar

我刚从Delphi 2009升级到Delphi XE8。这样做改变了程序工具栏上按钮的外观。

使用Delphi 2009编译时,它看起来像这样: enter image description here

但现在使用Delphi XE8,它看起来像这样: enter image description here

在我看来,这与Down属性有关。如果按钮的Down属性为true,则其背景将为蓝色。如果我点击按钮,那么会将Down属性更改为false,按钮将失去蓝色背景。

有谁知道可能导致蓝色背景的原因以及如何消除它?

我在Windows 8.1上。

跟进:David回答这是Windows 8.1的默认显示是正确的。检查其他程序,我看到他们也这样做了。

我没想到这是默认值,因为我用Delphi 2009编译的程序没有这样做。但正如大卫也解释的那样,那是因为Delphi 2009并没有内置主题支持,而是Delphi XE8。 (它可能已在Delphi XE2中添加,但不引用我的内容)

大卫提到了清单是可能的原因。这不是在这种情况下,但他提醒我,我可能有多个清单,应该检查它。

所以我的问题的最终答案是我不想消除蓝色背景。它是Windows 8.1默认显示向下按钮的方式,我想通过我的程序显示本机主题。

1 个答案:

答案 0 :(得分:2)

您的D2009程序不是主题,但您的XE8程序是主题。我的意思是XE8包含一个应用程序清单,它指定了comctl32的版本6。您的D2009程序不包含清单,或者不包括请求comctl32版本6的清单部分。

XE8程序的视觉外观是原生平台外观,从表面上看,遵循平台的领先是正常的。所以我选择的选项是将外观保留为平台标准。这与XE8版本一致。

但是,要回答您的问题,您可以通过删除清单的comctl32 v6部分来恢复旧外观。这也会影响程序的其他部分。如果您只想禁用工具栏的主题,可以使用SetWindowTheme

来实现