Einzelnen Beitrag anzeigen

DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#1

Memory full mit TWebBrowser

  Alt 28. Apr 2019, 10:47
Hallo,

ich hab folgenden Code, welcher in einem Thread läuft. Leider wird nicht der ganze speicher freigegeben. Wenn ich die funktion vielmals ausführe stürzt Delphi irgendwann mit dem Fehler "Memory full" ab.

Weiss jemand warum der Speicher nicht freigegeben wird ? Ich habs mit '.free' versucht, und mit 'Navigate('about:blank')', aber es wird nicht besser.

Delphi-Quellcode:
    
    NameThreadForDebugging('TBrowserThread');
    CoInitialize(nil);
    TBrowserEmulationAdjuster.SetBrowserEmulationDWORD(TBrowserEmulationAdjuster.IE11_Quirks);
    MyBrowser := TWebBrowser.Create(nil);
    MyBrowser.ParentWindow := Application.Handle;
    MyBrowser.Silent := True;
    MyBrowser.OnNewWindow2 := TMyActions.BlockNewWindow;
    MyBrowser.Navigate(PLink, 4);
    while MyBrowser.ReadyState <> 4 do Application.ProcessMessages;
    StartTime := Now;
    while SecondsBetween(Now, StartTime) < 4 do Application.ProcessMessages;
    document := MyBrowser.Document as IHTMLDocument2;
    PBrut := document.body.innerHTML;
    PLink := MyBrowser.LocationURL;
    MyBrowser.Navigate('about:blank');
    MyBrowser.Free;
    CoUnInitialize;
  Mit Zitat antworten Zitat