Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2015, 15:47   #1
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
Сообщение Компонент TChromium, dcef3, как очистить из памяти(free)

Доброго времени суток. Возникла следующая проблема: не могу удалить(освободить память) компонент, или если быть точнее - вызвать деструктор у объекта TChromium. В чём заключается проблема? При вызове деструктора уничтожается(на сколько я думаю) объект, а затем и всё приложение , а именно по непонятным мне причинам выполняется
Код:
application.terminate;
Что я сделал?
1) Скачал dcef3 отсюда https://github.com/hgourvest/dcef3
2) Установил его на Delphi XE5
3) Из папки demos\guiclient, открыл проект
4) Добавил TButton на форму и туда нужный код:
Код:
procedure TMainForm.btn1Click (Sender: TObject);
begin
 crm.Free;
end;
5) Запустил проект, нажал на созданный TButton и получил application.terminate. Сообственно вендору уже отписал о данной проблеме, но когда ответят не известно, кто знает как исправить проблему прошу помощи.
Winexcel вне форума Ответить с цитированием
Старый 01.11.2015, 17:12   #2
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Наверх, UP
Winexcel вне форума Ответить с цитированием
Старый 01.11.2015, 17:29   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что, задача так и не решена?
А ты как компонент создаешь? Динамически или кинувши его на форму?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2015, 09:05   #4
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Что, задача так и не решена?
А ты как компонент создаешь? Динамически или кинувши его на форму?
Задача не решена до сих пор, создаю я его динамически, или забрасываю на форму, результат один и тот же. Завершается всё приложение после вызова Free у объекта TChromium. Накопал тут немного в ceflib кода:
Код:
procedure CefShutDown;
begin
	if LibHandle <> 0 then
  begin
		if CefIsMainProcess then
			cef_shutdown;
		FreeLibrary(LibHandle);
		LibHandle := 0;
	end;
end;
Завершение всего приложения вызывает данный метод:cef_shutdown;
Комментарии
Код:
// This function should be called on the main application thread to shut down
// the CEF browser process before the application exits.
cef_shutdown: procedure(); {$IFDEF CPUX64}stdcall{$ELSE}cdecl{$ENDIF};

cef_shutdown := GetProcAddress(LibHandle, 'cef_shutdown');

CefLibrary: string = {$IFDEF MSWINDOWS}'libcef.dll'{$ELSE}'libcef.dylib'{$ENDIF};

LibHandle := LoadLibrary(PChar(CefLibrary));
Winexcel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DCEF3. GetSourceProc Delphi_ProGer Общие вопросы Delphi 13 01.05.2016 15:20
Компонент TChromium, Windows 8, DelphiXE3 mur3ick Компоненты Delphi 30 20.09.2015 15:56
Компонент [Tchromium] WeezyWayne Компоненты Delphi 3 10.05.2014 21:18
Как в ходе пограммы создать компонент чтобы он остался в памяти после ее закрытия. egorka2134 Общие вопросы Delphi 1 20.08.2013 16:30
Очистить Компонент Table thebrownie БД в Delphi 4 20.02.2012 00:49