procedure XXXXX.Xxxx
var
  WebBrowser: TWebBrowser;
  TabSheet: TTabSheet;
begin
  TabSheet := TTabSheet.Create(PageControl1);
  TabSheet.PageControl := PageControl1;
  PageControl1.ActivePage := TabSheet;
  WebBrowser := TWebBrowser.Create(self);
  WebBrowser.Parent := TabSheet;
  WebBrowser.Align := alClient;
  WebBrowser.Navigator('http://www.csdn.net');
end;

解决方案 »

  1.   

    哎,我已经说了无数次了,WebBrowser.Parent := TabSheet;这句编译错误,无法给只读属性赋值啊
      

  2.   

    procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
    var
      WebBrowser: TWebBrowser;
      TabSheet: TTabSheet;
    begin
      TabSheet := TTabSheet.Create(PageControl1);
      TabSheet.PageControl := PageControl1;
      PageControl1.ActivePage := TabSheet;
      WebBrowser := TWebBrowser.Create(self);
      TWinControl(WebBrowser).Parent := TabSheet;
      WebBrowser.Align := alClient;
      ppDisp := WebBrowser.Application ;
    end;
    大概是这样,如果出错,就检查一下吧
      

  3.   

    试试 Windows.SetParent( WebBrowser.HWND, TabSheet.Handle )
      

  4.   

    TWebBrowser.HWNDProvides access to the Window handle for the Web browser.property HWND: Integer;DescriptionUse HWND for Windows API calls that require a window handle. Use HWND instead of the Handle property when working with TWebBrowser controls.
      

  5.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs, ComCtrls,
      StdCtrls, ExtCtrls, OleCtrls, SHDocVw;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        Edit1: TEdit;
        Animate1: TAnimate;
        PageControl1: TPageControl;
        procedure Edit1KeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure WebBrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;
          var Cancel: WordBool);
      private
        { Private declarations }
        FCount: integer;
        FTabSheets: array of TTabSheet;
        FWebBrowsers: array of TWebBrowser;
        procedure NewWebBrowser;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.NewWebBrowser;
    begin
      inc(FCount);
      SetLength(FTabSheets, FCount);
      FTabSheets[FCount - 1] := TTabSheet.Create(self);
      FTabSheets[FCount - 1].PageControl := PageControl1;
      PageControl1.ActivePage := FTabSheets[FCount - 1];  SetLength(FWebBrowsers, FCount);
      FWebBrowsers[FCount - 1] := TWebBrowser.Create(self);
      FTabSheets[FCount - 1].InsertControl(FWebBrowsers[FCount - 1]);
      with FWebBrowsers[FCount - 1] do
      begin
        Align := alClient;
        Navigate(Edit1.Text);
        OnNewWindow2 := WebBrowserNewWindow2
      end;
    end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = VK_RETURN then
        NewWebBrowser;
    end;procedure TForm1.WebBrowserNewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
    begin
      NewWebBrowser;
      ppDisp := FWebBrowsers[FCount - 1].Application;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    var
      i: integer;
    begin
      for i := 0 to FCount - 1 do
      begin
        FTabSheets[i].Free;
        FWebBrowsers[i].Free;
      end;
    end;end.