我应该如何在Delphi XE8中获取ThemeServices实例

时间:2015-08-04 14:38:50

标签: delphi delphi-xe8

我从传统的Delphi 2010应用程序中获取此代码。

var InternalServices: TThemeServices;

function ThemeServices: TThemeServices;
begin
    if InternalServices = nil then
        InternalServices := ThemeServicesClass.Create;
    Result := InternalServices;
end;

编译器告诉我ThemeServicesClass.Create不存在。我应该如何在Delphi XE8中执行此操作?

1 个答案:

答案 0 :(得分:5)

您在问题中包含的代码将从VCL的Themes单元中解除。该代码不应由您编译。您的应用程序编译该代码而不是使用Themes单元中的代码可能总是错误的。

在XE8中,您应该调用Vcl.Themes的{​​{3}}方法。名称更改(从ThemeServicesStyleServices)是为了反映VCL样式现在已经增强了旧版XP主题支持的事实。

到目前为止,我可以确定,您的问题中的代码不应该由您编译。它应该删除。它可能是更大的代码片段的一部分,也可能执行可疑的行为。如果没有完全看到该代码,我们就无法向您提供明确的建议。