Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2018.03.18;
Скачать: [xml.tar.bz2];

Вниз

Утечка памяти и как лечить, не пойму ничего IEBrowser   Найти похожие ветки 

 
Signal   (2016-03-19 10:36) [0]

[CODE]
for i := 200 to iDoc.all.Get_length-1 do
 begin
   iDisp := iDoc.Get_all.item(pred(i), 0);
   iDisp.QueryInterface(IHTMLElement, iElement);
[/CODE]
iDisp в конечном итоге начинает жрать кучу памяти и вылетает все сообщением Out of system resource.
Нашел в интернете только упоминание это проблемы для TwebBrowser, там надо править исходник этого Twebbrowser, а вот
iDoc у меня обявлен в VAR как IHTMLDocument2;
а создаю его текстом из файла следующим методом:
[CODE]
function GetHTTPTEXT_DOC2(TextHTML:String):IHTMLDocument2;
var
   V: OleVariant;
begin
 Result:=coHTMLDocument.Create as IHTMLDocument2;
 V:=VarArrayCreate([0,0], varVariant);
 V[0]:=TextHTML;
 Result.Write(PSafeArray(TVarData(v).VArray));
end;

[/CODE]
вообщем что можно использовать вместо конструкции
   iDisp := iDoc.Get_all.item(pred(i), 0);
   iDisp.QueryInterface(IHTMLElement, iElement);


 
han_malign ©   (2016-03-21 17:03) [1]

можно попробовать завернуть во врапер, чтобы все неявные ссылки гарантированно очищались(в неявных секциях try finally).


procedure wrap_collection;
  var __walk: IHTMLElementCollection;
  procedure wrap_element(i: integer);
  var iDisp: IDispatch;
       iElement: IHTMLElement;
  begin
     iDisp := __walk.item(pred(i), 0);
     iDisp.QueryInterface(IHTMLElement, iElement);
     ...
  end;
var i: integer;
begin
  __walk:= iDoc.all;
  for i := 200 to __walk.length-1 do wrap(i);
end;


 
Signal   (2016-03-23 22:03) [2]

было бы круто
__walk.length-1

если бы их не было бы 1,5 милиона в каждом цикле...гы

я,конечно разными особенностями это решил, но это костыли и бубны


 
ВладОшин ©   (2016-03-24 13:46) [3]

я периодически грохаю TwebBrowser и пересоздаю
т.к.

> надо править исходник этого Twebbrowser

даже так у меня не получилось, все равно течет


 
Signal   (2016-03-24 16:24) [4]

я не через TWebBrowser а чере iWebbrowser2, т.е. через Internet Explorer, грохать его не вариант и обновлять страницу тоже, т.к. все на странице именится



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2018.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
2-1456676881
Илья_666
2016-02-28 19:28
2018.03.18
Взаимодействие с компонентами


15-1471210202
Юрий
2016-08-15 00:30
2018.03.18
С днем рождения ! 15 августа 2016 понедельник


15-1471037402
Юрий
2016-08-13 00:30
2018.03.18
С днем рождения ! 13 августа 2016 суббота


8-1243716518
v1ctar
2009-05-31 00:48
2018.03.18
Обработка изображений. Сегментация.


6-1263673971
zSvetik
2010-01-16 23:32
2018.03.18
Видеотрансляция по сети





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский