场景:
- 一个带有两个TTabSheets的TPageControl
- 在非可见标签页上有一个TWebBrowser
- 在创建窗体时调用WebBrowser->Navigate
如果用户只是运行窗体并退出,则在应用程序关闭期间会生成访问冲突:
在$507C1413处发生第一次例外。具有消息“访问地址0x00000010的$c0000005异常”。 进程Project1.exe (3464)
调试器中的调用堆栈仅包含单个条目,这表明调用堆栈正在被损坏:
:507c1413 ; C:\Program Files (x86)\Embarcadero\Studio\16.0\bin\vcl220.bpl
(另一个应用程序显示调用堆栈仅具有单个IsFormSizeStored
条目。)
在代码或UI中切换到浏览器的标签页可以避免该问题。不调用Navigate也可以避免该问题。
在XE4和XE8中观察到。
修复此问题的最佳方法是什么?
WebBrowser->Navigate
的调用移动到不同的位置(例如AfterConstruction
)以允许表单完全创建吗? - Ken White