- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 TEventObject
来为 TWebBrowser
提供 OnMouseDown
和 OnMouseMove
事件。当移动鼠标和在网络浏览器中单击时,这些事件工作正常,但是当我滚动或单击网络浏览器的垂直滚动条时,会发生 EZeroDivide
异常。 EurekaLog 报告 d2d1.dll 中的 EZeroDivide 异常。我试图捕获异常,但我尝试过的任何方法似乎都不起作用:
function TEventObject.Invoke( DispID: integer; const IID: TGUID; LocaleID: integer; Flags: Word; var Params;
VarResult, ExcepInfo, ArgErr: Pointer ): HResult;
begin
try
if ( DispID = DISPID_VALUE ) then
begin
if Assigned( FOnEvent ) then
FOnEvent;
Result := S_OK;
end
else
begin
FOnEvent := nil;
Result := E_NOTIMPL;
end;
except
on EZeroDivide do
begin
FOnEvent := nil;
Result := E_NOTIMPL;
end;
end;
end;
我的问题是我可以以某种方式防止异常,或者可以检测到 TWebbrowser 垂直滚动条上的 mousedown 以防止异常吗?这个异常对我来说是一个很难解决的问题,因为我对TEventObject了解不多,也不明白为什么只有在单击或拖动垂直滚动条时才会出现该异常。如果需要,我可以提供更多信息。编译器:Delphi 2010。
[编辑]参见这篇文章: http://www.codenewsfast.com/cnf/article/0/waArticleBookmark.7401953一个非常简单的演示应用程序位于: http://dl.dropbox.com/u/2167512/bugs/ie9/ie9_bug.zip
这可以防止错误:
Math.SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide,exOverflow, exUnderflow, exPrecision]);
最佳答案
尝试禁用 FPU 异常:
System.Set8087CW($133F);
在较新版本的 Delphi 中:
Math.SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]);
关于delphi - TEventObject 和 WebBrowser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8729235/
我创建了一个 TEventObject 来为 TWebBrowser 提供 OnMouseDown 和 OnMouseMove 事件。当移动鼠标和在网络浏览器中单击时,这些事件工作正常,但是当我滚动或
我是一名优秀的程序员,十分优秀!