我应该如何在 Delphi XE8 中获取 ThemeServices 实例
How should I fetch the ThemeServices instance in 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 中执行此操作?
问题中包含的代码是从 VCL 的 Themes
单元提取的。该代码不应由您编译。您的应用程序编译该代码而不是使用 Themes
单元中的代码可能总是一个错误。
在XE8中你应该调用Vcl.Themes
的StyleServices
方法。名称更改(从 ThemeServices
到 StyleServices
)是为了反映旧的 XP 主题支持现在已通过 VCL 样式得到增强。
据我所知,你问题中的代码应该不是你编译的。它应该被删除。它可能是一段更大的代码的一部分,可能也执行可疑的行为。如果不完全了解该代码,我们就不可能为您提供明确的建议。
我从遗留的 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中你应该调用Vcl.Themes
的StyleServices
方法。名称更改(从 ThemeServices
到 StyleServices
)是为了反映旧的 XP 主题支持现在已通过 VCL 样式得到增强。
据我所知,你问题中的代码应该不是你编译的。它应该被删除。它可能是一段更大的代码的一部分,可能也执行可疑的行为。如果不完全了解该代码,我们就不可能为您提供明确的建议。