Problemet er nok at vinduerne ikke bliver Free'ed når de lukkes, men blot Hides / skjules. WebBrowser controllen bliver altså ved med at afspille indholdet i baggrunden.
En løsning er at Free'e formen / vinduet hvis det ikke skal bruges mere:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
Hvis formen skal bruges igen, så kan man få den til at vise en blank side, når formen lukkes / skjules (der klikkes på krydset):
procedure TForm2.FormHide(Sender: TObject);
begin
WebBrowser1.Navigate('about:blank');
end;
Dette får naturligvis WebBrowser kontrollen til at glemme hvilken side den var på. Hvis samme side skal vises når formen vises igen, må adressen gemmes i en variabel når den lukkes ned, og gendannes fra variablen når den vises igen.
var
CurrentURL: WideString;
procedure TForm2.FormHide(Sender: TObject);
begin
CurrentURL := WebBrowser1.LocationURL;
WebBrowser1.Navigate('about:blank');
end;
procedure TForm2.FormShow(Sender: TObject);
begin
WebBrowser1.Navigate(CurrentURL);
end;
Så skal man bare huske på at man ikke skal kalde WebBrowser1.Navigate før formen vises, da webbrowser'en bare navigerer til CurrentURL bagefter. Bemærk også at CurrentURL skal initialiseres før formen vises første gang.