Ich habe kein Firefox, aber wie wäre es denn, wenn Du gleich zu Anfang 2 TabSheets machen würdest. Im 2. würde dann das "+" stehen (aber kein Webbrowser drauf haben), hier könntest du z.B. den Tag auf 1 stellen, damit du weisst, dass dieses ein neues Tabsheet ist. Im OnChange des TPageControls könntest du dann anhand des ActivePageIndexes schauen, ob dieses TabSheet den Tag=1 hat, wenn ja, Tag auf 0 setzen und deinen Code dazu (Webbrowser auf das aktive Tabsheet erzeugen) und Tag des neue erzeugten Tabsheets (ohne Webbrowser) wieder auf 1 setzen. Anstatt den Tag zu setzen, kannst auch einfach schauen, ob das aktive Tabsheet einen Webbrowser hat.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm1.PageControl1Change(Sender: TObject); var NewTab: TTabSheet; NewWeb: TWebBrowser; begin if PageControl1.ActivePage.Tag = 0 then begin Exit; end;
PageControl1.ActivePage.Tag := 0; NewWeb:=TWebBrowser.Create(PageControl1.ActivePage); TWinControl(NewWeb).parent := PageControl1.ActivePage; NewWeb.Align:= alClient; NewWeb.Visible := True; NewWeb.Navigate('http://wikipedia.de'); PageControl1.ActivePage.Caption := 'http://wikipedia.de'; NewTab:= TTabSheet.Create(PageControl1); TWinControl(NewTab).parent := PageControl1; NewTab.PageControl := PageControl1; NewTab.Caption := ' + '; NewTab.Tag := 1; end; |