2012-08-08 74 views
1

TWebBrowser组件的错误如此处所述[IE9] 'Floating point division by zero' occurs with WebBrowser。解决方法是调用一个将禁止所有除零除外的过程。我正在尝试解决此问题,而无需调用此过程。TWebBrowser - 试图修复“无效的浮点运算”错误

到目前为止,我的最好想法是禁用TWebBrowser滚动条,并尝试使用TScrollBar来模拟相同的功能。到目前为止,它正在工作,但这是一个问题:

如何使TWebBrowserTScrollBar同步导航?我需要截取TWebBrowser的滚动消息并将它们发送到TScrollBar以保持与正在显示的文档同步。有谁知道如何做到这一点?

更加清楚:我需要告诉TScrollBar它相对于TWebBrowser中光标位置的位置。

我正在使用德尔福2010年。

+2

你应该通过屏蔽FP异常来解决这个问题。我无法想象为什么你想让自己的生活如此痛苦。 – 2012-08-08 16:54:33

+2

链接的QC条目注释已经告诉你解决方案:Set8087CW($ 133F);在调用之前,然后在之后恢复它,如果你真的希望在web浏览器消失后再次返回浮点异常。没有替代。 – 2012-08-08 18:40:11

+1

如果你的应用有超过1个Delphi线程,那么调用Set8087CW不是一个选项,因为它的线程不安全,并且它改变了Default8087CW,它也可能泄漏到其他线程中。 – 2012-08-08 19:24:40

回答

3

我不认为值得尝试。在IE浏览器滚动将发生滚动条可见或不可见...使用您的TScrollbar显然将滚动浏览器,而这又将假设会产生相同的确切的错误。我不知道IE的内部知道这个浮点错误到底在哪里...

你是否在所有的滚动条,或只是外面的?如何滚动内部内容,如嵌入式框架?文档上的其他内部滚动条是否会生成相同的错误?如果他们这样做了,那么你将会追逐你的尾巴很长一段时间,试图在所有它的可滚动内容上做IE。

该修复程序已提供并经过测试。对不起,但我会使用建议的修复程序。

+0

那么..错误不会发生没有滚动条是可见的。该错误只发生在我点击滚动条时,所以我认为这是可能的,值得尝试。 – 2012-08-08 20:04:30

+0

你打算删除组合框,编辑框,嵌入框架上的滚动条吗? – 2012-08-08 22:44:19

+0

不会。这个错误不会发生在连击,编辑和框架上。 – 2012-08-09 14:38:58