Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Pascal->TWebBrowser->Uvolňování RAM paměti

No, celého si ma tak trošku "domotal". (Sám som sa domotal.. :-))

Z toho čo som pochopil tak máš hlavný Formulár a na ňom PageControl, v ktorom potom dynamicky vytváraš listy (Tabsheet) a v nich následne TWebBrowser.
Čiže ja by som to riešil asi nasledovne:
1. Vytvoril by som proceduru, kde by sa dynamicky vytvárali TabSheet+WebBrowser:

procedure MainForm.CreateTabBrowser;
var
  ts: TTabSheet;
  WB: TWebbrowser;
begin
  // Vytvoriť nový TabSheet
  ts := TTabSheet.Create(PageControl);
  try
    // Priradiť vlastnosti TTabSheet 
    ts.PageControl := PageControl;
    ts.Parent := PageControl;
    if PageControl1.ActivePageIndex > 0 then ts.PageIndex := PageControl1.ActivePageIndex + 1
    else ts.PageIndex := 0;
  
    // Vytvoriť inštanciu TWebbrowser 
    WB := TWebbrowser.Create(ts);

    // vložiť TWebbrowser na TTabSheet
    TControl(WB).Parent := ts;
    // alebo:   Ts.InsertControl(WB);

    // Priradiť vlastnosti Webbrowser 
    WB.Align := alClient;
    WB.Silent := True;
    WB.Visible := True;

    PageControl.ActivePage := ts;
    WB.Navigate(sURL);
  except
    ts.Free;
  end;
end;
2. potom by som si vytvoril procedúru, kde by som zatváral napr. aktívny list aj s následným zrušením WebBrowsera:
procedure mainForm.CloseTab(Sender: TObject);
begin
  if PageControl.ActivePage.Controls[0] is TWebbrowser then
  begin
    (TWebbrowser(PageControl.ActivePage.Controls[0])).Free;
     PageControl.ActivePage.Free;
  end;
end;

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny