Delphi XE6问题与样式菜单和madExcept

时间:2014-08-23 07:04:31

标签: delphi delphi-xe6 vcl-styles madexcept

我遇到了Delphi VCL样式的奇怪行为。启用VCL样式后,当madExcept激活“缓冲区溢出时立即崩溃”选项时,菜单将变为非样式。

关闭此选项,或将其切换为“立即崩溃缓冲区UNDERrun”会修复菜单问题。

问题是:是否还有其他人遇到此问题?为什么会发生以及如何解决?

2 个答案:

答案 0 :(得分:4)

此问题是由对GetClassName WinAPI函数的内部调用引起的。我刚刚测试并上传了一个修复程序。因此,您可以从VCL Styles Utils下载repository项目的最新版本,然后将单位Vcl.Styles.Utils.MenusVcl.Styles.Utils.SysControlsVcl.Styles.Utils.SysStyleHook添加到您的项目中,最后发表评论或删除Vcl.Styles.Utils.Menus单元中的第(27)行{$UNDEF UseVCLStyleUtilsMenu}

答案 1 :(得分:0)

这似乎向我表明VCL样式代码有缓冲区溢出。 madExcept内存管理器成功地使缓冲区溢出显示为异常。反过来,样式代码通过禁用样式来响应。

下一步操作是在调试器下运行代码,启用调试DCU,以便您可以调试VCL代码。希望调试器将捕获异常,然后突出显示缓冲区溢出。

如果您成功识别问题,可以制定解决方法并向QC提交错误报告。