我想做一个网页浏览器,怎样可以避免在打开新的一页的时候,是在我自己的浏览器里新建一页,而不是打开IE???(100分)

  • 主题发起人 主题发起人 北斗
  • 开始时间 开始时间

北斗

Unregistered / Unconfirmed
GUEST, unregistred user!
1。我想做一个网页浏览器,怎样可以避免在打开新的一页的时候,是在我自己的浏览器里新建一页,而不是打开IE???
2。怎样让我的浏览器自动建一个新页?(用什么控件)?
 
用PageControl控件,在浏览器控件的NewWindow2事件中:
1。建立PageControl上新的一页,再在此新页上新建一个WebBrowser,
2。指定ppDisp:=新WebBrowser.DefaultInterface; 切换到新页.
 
我 是 使 用 多 窗 口 类 处 理 的。
在 子 窗 口 添 加 :
procedure TMDIChild.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
Child: TMDIChild;

begin
{ create a new MDI child window }
Child := TMDIChild.Create(Application);
Child.Caption := curURL;
ppDisp := Child.webbrowser1.Application;
end;
curURL 为 全 局 变 量, 来 之:
procedure TMDIChild.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
curURL := URL;
MainForm.Edit2.Text := curURL;
DisplayHint('查询服务器'+String(URL));
end;
 
假设你是用的pagecontrol做的多页面浏览器。可以这样做。有问题MAIL me.[:)]

procedure Tmainform.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
var
newbrowser:twebbrowser;
newtabsheet:TTabSheet;
begin
newtabsheet:=TTabSheet.Create(nil);
newtabsheet.PageControl:=pagecontrol1;
newbrowser:=twebbrowser.Create(nil);
newtabsheet.InsertControl(newbrowser);
newtabsheet.Caption:=newbrowser.GetNamePath;
pagecontrol1.ActivePage:=newtabsheet;
ppdisp:=newbrowser.Application;
end;
 
1。注册你自己的浏览器,开新的页面就可以在你里面打开了。。
2。用PageControl
 
多人接受答案了。
 
后退
顶部