在我自己做的浏览器中(单页面的),如何实现打开新页面功能?
就是点了后,自动再次打开本浏览器程序,进入指定页{!
这样的不行
var  
   a:  tform;  
begin  
   a:=  tform.create(self);  
   try  
       a.showmodal;  
   finally  
       a.free;  
   end;  
end; 
不会是要用shellexecute打开本程序把?

解决方案 »

  1.   

    你又把它free了,当然看不到了
      

  2.   

    procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
    var NewForm: TForm1;
    begin
      Application.CreateForm(TForm1, NewForm);
      ppDisp := NewForm.WebBrowser1.DefaultDispatch;
      NewForm.Show;
    end;
      

  3.   

    你用finally把它free掉了,当然没有效果了
      

  4.   

    TO  westfly(西翔):
    还是不行啊,兄弟,新窗口在任务栏没有显示~
      

  5.   

    重载CreateParams方法即可实现新窗口在任务栏显示
    // procedure CreateParams(var Params: TCreateParams); override;procedure TForm1.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.WndParent := GetDesktopWindow;
    end;
      

  6.   

    procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
    var NewForm: TForm1;
    begin
      NewForm := TForm1.Create(Self);
      ppDisp := NewForm.WebBrowser1.DefaultDispatch;
      NewForm.Show;
    end;procedure TForm1.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      if Owner <> Application then
        Params.WndParent := GetDesktopWindow;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      if Owner <> Application then Action := caFree;
    end;
      

  7.   

    上面代码我是测试过了(d5+w2k),没问题,你的环境是什么。