Очистка памяти занятой под TWebbrowser в delphi



Многие знают, что при длительной работе с компонентном TWebbrowser в Delphi, любое ваше, даже очень маленькое приложение начинает кушать память с не маленьким аппетитом, и обычное webbrowser1.free, никак практически не помогает бороться с данной проблемой.
Как было у меня: форма, мемо, две кнопки, таймер и webbrowser1 который пере-создавался по таймеру. В мемо хранился большой список сайтов, а таймер собственно осуществлял серфинг по данным сайтам, тем самым принося уников некоторым ГС.
После примерно часа этакого серфинга, стало понятно, что оно того не стоит, ибо из двух гб оперативы, приложение занимающее 350 кб, съело больше чем 1 гб.
Решил поискать решение проблемы с утечкой, как оказалось гугл молчит. Даже в яндекс обращался за поиском, как итог ничего не нашёл. Вот решил опубликовать, ибо многим пригодится.
Кидаем webbrowser1 на форму
Кидаем кнопку на форму
var
Form1: TForm1;
i: integer;
bym: boolean;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
bym:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
wb: ^TWebBrowser;
begin
if bym then
begin
bym:=false;
WebBrowser1.Free;
WebBrowser1:=TWebBrowser.Create(Form1);
TWinControl(WebBrowser1).Parent:=Form1;
WebBrowser1.Width:=406;
WebBrowser1.Height:=231;
WebBrowser1.Left:=35+i;
WebBrowser1.Top:=350-i;
i:=i+10;
WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete;
WebBrowser1.Navigate(‘www.google.ru’);
end
else
begin
New(wb);
wb^:=WebBrowser1;
WebBrowser1:=TWebBrowser.Create(Form1);
TWinControl(WebBrowser1).Parent:=Form1;
WebBrowser1.Width:=406;
WebBrowser1.Height:=231;
WebBrowser1.Left:=35+i;
WebBrowser1.Top:=350-i;
i:=i+10;
WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete;
WebBrowser1.Navigate(‘www.google.ru’);
wb^.Free;
Dispose(wb);
end;
end;

Ну а дальше уже подстроите под себя.
Суть данной функции в том что осуществляется подмена webbrowser, а затем удаляется. Тем кому нужны куки не подойдёт
Теги:
TWebbrowser
Добавлено: 22 Сентября 2013 10:07:32 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...