场景:
- 带有两个 TTabSheets 的 TPageControl
- 不可见标签页上的 TWebBrowser
- WebBrowser->在表单创建期间调用的导航
如果用户只是运行表单并退出,则在应用程序关闭期间,会生成访问冲突:
First chance exception at $507C1413. Exception class $C0000005 with message 'access violation at 0x507c1413: read of address 0x00000010'. Process Project1.exe (3464)
调试器中的调用堆栈仅包含一个条目,这表明调用堆栈已损坏:
:507c1413 ; C:\Program Files (x86)\Embarcadero\Studio\16.0\bin\vcl220.bpl
(另一个应用程序将调用堆栈显示为具有单个 IsFormSizeStored
条目。)
切换到浏览器的选项卡(无论是在代码中还是在 UI 中)都可以避免该问题。不调用 Navigate 可以避免该问题。
在 XE4 和 XE8 中观察到。
解决这个问题的最佳方法是什么?
最佳答案
按照 @TOndrej 的建议,我添加了一个 FormClose 事件处理程序,以便在应用程序关闭之前删除 TWebBrowser 控件。
此问题已记录在RAD Studio Quality Portal上.
关于delphi - 从隐藏的 TWebBrowser 关闭时访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30667585/