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;