delphi – TEventObject和WebBrowser
发布时间:2020-12-15 09:13:42 所属栏目:大数据 来源:网络整理
导读:我创建了一个TEventObject来为TWebBrowser提供OnMouseDown和OnMouseMove事件.移动鼠标和单击Web浏览器时,事件工作正常,但当我滚动或单击webbrowser的垂直滚动条时,会出现EZeroDivide异常. EurekaLog在d2d1.dll中报告EZeroDivide异常.我试图捕获异常,但我尝试
我创建了一个TEventObject来为TWebBrowser提供OnMouseDown和OnMouseMove事件.移动鼠标和单击Web浏览器时,事件工作正常,但当我滚动或单击webbrowser的垂直滚动条时,会出现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. [编辑] 这可以防止错误: Math.SetExceptionMask([exInvalidOp,exDenormalized,exZeroDivide,exOverflow,exUnderflow,exPrecision]); 解决方法
尝试禁用FPU异常:
System.Set8087CW($133F); 在较新版本的Delphi中: Math.SetExceptionMask([exInvalidOp,exPrecision]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |