【发布时间】:2011-11-01 21:37:43
【问题描述】:
在 Delphi XE UxTheme 单元中有以下声明
function DrawThemeTextEx(hTheme: HTHEME; hdc: HDC; iPartId: Integer; iStateId: Integer;
pszText: LPCWSTR; cchText: Integer; dwTextFlags: DWORD; pRect: PRect;
var pOptions: TDTTOpts): HResult; stdcall;
external themelib name 'DrawThemeTextEx' delayed;
我的带有 SP3 的 Windows XP Professional 在 uxtheme.dll 中没有这样的功能(使用来自 http://www.nirsoft.net/utils/dll_export_viewer.html 的 dllexp.exe 检查)
似乎我的应用程序确实延迟加载过程并且运行时失败并出现以下错误:
Project mtgstudio.exe raised exception class EExternalException
with message 'External exception C0FB007F'.
这个问题在 JVCL 中也遇到过,但根据http://andy.jgknet.de/blog/2009/09/once-upon-a-delayed-jvcl-time/在那里解决了
我需要修复 UxTheme,因为 DevExpress 组件也使用它们。
有没有办法修补/修复 UxTheme.pas DrawThemeTextEx 声明以不延迟?
【问题讨论】:
-
还向 JVCL 报告了 issuetracker.delphi-jedi.org/view.php?id=4934
-
embarcadero.newsgroups.archived.at/…也报告了类似的延迟问题
-
Andy 的博文似乎非常清楚地解释了这个问题(以及如何解决它)。然后,您可以通过更改它们的代码以使用 Jvcl 版本而不是普通的 UxTheme 来修复 DevEx 组件(直到它们这样做)。
-
@Ken 为什么不回答这个问题!
-
@mj2008:我认为它没有提供足够的细节来使其成为答案。 :)
标签: delphi function loading delay uxtheme