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;