2015-05-14 6 views
3

Как уничтожить компонент Tchromium, динамически созданный? Я использую в DLL, компонент, необходимый для его создания и уничтожения несколько раз, не освобождая DLL, проблема в том, что не освобождается память и не удается очистить папку кэша. Если я использую проблемы CefShutDown, со временем возникнет необходимость повторного создания браузера. Я использую последнюю версию DCEF3. Создание динамически, как это:Как уничтожить компонент Tchromium (Delphi), динамически созданный?

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

, чтобы уничтожить пытались несколькими способами:

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

CefShutDown решены вовремя, чтобы уничтожить, проблема возникает, когда я попробовать еще раз воссоздать компонент без DEALLOCATE моя DLL.

Также решить еще одну проблему, с которой я столкнулся с UserAgent, не может изменить отдых браузера.

Я ценю любые предложения по решению моей проблемы.

+0

[относящийся к CEF1] (http://stackoverflow.com/q/16080509/960757); Я не уверен, добавили ли они некоторую поддержку очистки кеша в CEF3. – TLama

+0

После создания браузера вы можете изменить UserAgent? Хотел бы я, чтобы каждая навигация изменила эту информацию. Если это так, это будет решением моей проблемы –

+0

Нет, это задано только при инициализации. Но вы можете обработать событие ['OnBeforeResourceLoad'] (http://magpcss.org/ceforum/apidocs3/projects/%28default%29/CefRequestHandler.html#OnBeforeResourceLoad) и изменить поле заголовка пользовательского агента для каждого запроса. – TLama

ответ

6

Такое поведение, как и предусмотрено. Issue 1237 на трекерном вопросе Chromium идентичен вашей проблеме. Соответствующий отрывок:

CefInitialize/CefShutdown нельзя вызывать несколько раз в одном процессе. Вы можете создавать/уничтожать несколько окон браузера без повторной инициализации CEF.

Вам нужно будет воздержаться от звонка CefShutDown.

+0

Мне очень приятно, что компонент, если возможно, полностью уничтожит его и обновит его динамически, будет замечательно –

+1

Не стесняйтесь уничтожать экземпляр компонента, но воздержитесь от вызова 'CefShutDown'. –

 Смежные вопросы

  • Нет связанных вопросов^_^