如何破坏动态创建的Tchromium(Delphi)组件?

时间:2015-05-14 14:13:38

标签: delphi embedded components destroy tchromium

如何破坏动态创建的Tchromium组件?我在DLL中使用,在不释放DLL的情况下多次创建和销毁它所需的组件,问题是没有释放内存而无法清除缓存文件夹。如果我使用CefShutDown问题及时发生再次重新创建浏览器。我使用的是最新版本的DCEF3。 像这样动态创建:

crm := TChromium.Create(Form1);
crm.SetParentComponent (Panel2);
crm.Align := alClient;

以多种方式进行破坏:

FreeAndNil(crm);
crm.free;
crm := nil;
CefShutDown;

CefShutDown及时解决了破坏问题,当我再次尝试重新创建组件而没有释放我的DLL时,问题就出现了。

还解决了我在UserAgent上遇到的另一个问题,无法改变浏览器的重新创建。

我感谢任何解决我问题的建议。

1 个答案:

答案 0 :(得分:6)

此行为与设计完全相同。 Chromium问题跟踪器上的Issue 1237与您的问题相同。相关摘录是:

  

在同一进程中无法多次调用CefInitialize / CefShutdown。您可以创建/销毁多个浏览器窗口,而无需重新初始化CEF。

您必须避免拨打CefShutDown