我有一个旧版Delphi 2010应用程序中的代码。
var InternalServices: TThemeServices;
function ThemeServices: TThemeServices;
begin
if InternalServices = nil then
InternalServices := ThemeServicesClass.Create;
Result := InternalServices;
end;
编译器告诉我ThemeServicesClass.Create不存在。我应该如何在Delphi XE8中做到这一点?
最佳答案
问题中包含的代码是从VCL的Themes
单元中提取的。该代码不应由您编译。对于您的应用程序来说,编译该代码而不是使用Themes
单元中的代码可能总是一个错误。
在XE8中,应调用StyleServices
的Vcl.Themes
方法。名称的更改(从ThemeServices
更改为StyleServices
)是为了反映以下事实:较早的XP主题支持现在已由VCL样式增强。
据我所知,问题中的代码不应由您编译。应该将其删除。它可能是一段更大的代码的一部分,可能还会执行可疑的行为。如果不完全了解该代码,我们将无法为您提供明确的建议。