Okay, ich habe es einfach mal mit sSource.LoadFromFile als Ersatz probiert (den Rest so gelassen), um festzustellen ob es an SaveToStrings liegt und du hattest Recht Christian, da ist der Wurm drin.
Ich habe mal geschaut was bei TEmbeddedWB so falsch sein könnte und bin bisher nur auf das gestoßen:
Delphi-Quellcode:
constructor TEmbeddedWb.Create(Owner: TComponent);
var
Buf: array[1..10] of Char;
begin
FfpExceptions := True;
inherited;
{$IFDEF VER120}
enablemessagehandler;
{$ENDIF}
GetDDEVariables;
// Compiler: Symbol 'AllocateHWnd' wird abgelehnt
DDEHWnd := AllocateHWnd(DDEWndProc);
.
.
.
end;
destructor TEmbeddedWb.Destroy;
begin
// Compiler: Symbol 'DeAllocateHWnd' wird abgelehnt
DeAllocateHWnd(DDEHwnd);
.
.
.
end;
// Folgendes aus function SaveDocToStrings(Doc: IDispatch; var AStrings: TStrings): HResult;
// mehr Quelltext, siehe oben ;)
IpStream := doc as IPersistStreamInit;
// wird nicht wieder freigegeben? naja, ich hab mal ._Release damit gemacht und es hat nichts gebracht
if Succeeded(IpStream.save(TStreamadapter.Create(AStream), TRUE))
// TStreamadapter hat noch die Eigenschaft Ownership die hier nicht verwendet wird:
// Mit Ownership wird die Eigenschaft StreamOwnership initialisiert, die das verantwortliche TStreamAdapter-Objekt für die Freigabe des in Stream angegebenen Streams im eigenen Destruktor bezeichnet.
//
Mehr fällt mir langsam echt nicht mehr ein. Ich suche momentan noch ein wenig nach Lösungen, aber ich glaube bald lege ich das Programm einfach unter
RAM-Hog ab und fass es nicht mehr an. ;)
Ich habe leider keine andere OpenSource TWebBrowser Komponente gefunden, vielleicht hat da ja jemand was für mich? :P
Ach ja, vielleicht könnte ein Mod ja das Thema in "Memory Leak in TEmbeddedWB (SaveTo...)" umbenennen und nach "Internet /
IP / LAN" verschieben.