初学delphi 想实现仿IE的选项卡功能
自己乱写了程序 登录+主窗体
登录成功后显示主窗体 主窗体中是WebBrowser一个网页、网页内是超链接列表,点击任意超链 弹出新IE
不想弹出IE想实现类似ie选项卡,
目前是登录成功后 弹出主窗体新建pagecontrol
主窗体代码
procedure TFrmMain.FormCreate(Sender: TObject);
var
lsweb:TWebBrowser;
begin
sheet:=TTabSheet.Create(Self);
sheet.PageControl:=PageControl1;
sheet.Caption:='空白页';
PageControl1.ActivePageIndex:=PageControl1.PageCount-1;
lsweb:=TWebBrowser.Create(Self);
lsweb.Align:=alClient;
lsweb.ParentWindow:=sheet.Handle;
lsweb.Navigate('http://www.baidu.com');end;procedure TFrmMain.MainNewWindow2(Sender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
var
lsweb:TWebBrowser;
nNew:Integer;
beginif NewWinOk=True then begin
NewWinOk:=False;
with TTabSheet.Create(PageControl1) do begin
PageControl := PageControl1;
ShowHint:=False;
Caption := '空白页';
end;
nNew:=PageControl1.PageCount-1;
//创建TWebBrowser控件
lsweb:=TWebBrowser.Create(self);
with lsweb do begin Align := alClient;
Visible:=True;
OnNewWindow2 := MainNewWindow2;
OnTitleChange:=MainTitleChange;
end;
PageControl1.ActivePageIndex:=nNew;
TWinControl(lsweb).Parent:=PageControl1.Pages[nNew]; //PageControl1.ActivePage;
ppDisp:=lsweb.DefaultDispatch;
NewWinOk:=True;
end;end;就是不知道后面怎么写了 如何能让主窗体的WebBrowser内网页链接点击后建立新选项卡,
能否给个实例或源码学习一下,本人初学菜鸟 谢谢
自己乱写了程序 登录+主窗体
登录成功后显示主窗体 主窗体中是WebBrowser一个网页、网页内是超链接列表,点击任意超链 弹出新IE
不想弹出IE想实现类似ie选项卡,
目前是登录成功后 弹出主窗体新建pagecontrol
主窗体代码
procedure TFrmMain.FormCreate(Sender: TObject);
var
lsweb:TWebBrowser;
begin
sheet:=TTabSheet.Create(Self);
sheet.PageControl:=PageControl1;
sheet.Caption:='空白页';
PageControl1.ActivePageIndex:=PageControl1.PageCount-1;
lsweb:=TWebBrowser.Create(Self);
lsweb.Align:=alClient;
lsweb.ParentWindow:=sheet.Handle;
lsweb.Navigate('http://www.baidu.com');end;procedure TFrmMain.MainNewWindow2(Sender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
var
lsweb:TWebBrowser;
nNew:Integer;
beginif NewWinOk=True then begin
NewWinOk:=False;
with TTabSheet.Create(PageControl1) do begin
PageControl := PageControl1;
ShowHint:=False;
Caption := '空白页';
end;
nNew:=PageControl1.PageCount-1;
//创建TWebBrowser控件
lsweb:=TWebBrowser.Create(self);
with lsweb do begin Align := alClient;
Visible:=True;
OnNewWindow2 := MainNewWindow2;
OnTitleChange:=MainTitleChange;
end;
PageControl1.ActivePageIndex:=nNew;
TWinControl(lsweb).Parent:=PageControl1.Pages[nNew]; //PageControl1.ActivePage;
ppDisp:=lsweb.DefaultDispatch;
NewWinOk:=True;
end;end;就是不知道后面怎么写了 如何能让主窗体的WebBrowser内网页链接点击后建立新选项卡,
能否给个实例或源码学习一下,本人初学菜鸟 谢谢
procedure TFrmMain.FormCreate(Sender: TObject);
var
url: OleVariant;
begin;TS := TTabSheet.Create(self);
TS.PageControl := PageControl;WebBrowser := TWebBrowser.Create(self);
WebBrowser.Align := alClient;
TS.InsertControl(WebBrowser);
Ts.Caption := '新建页面';
PageControl.ActivePage := TS;
url:='http://www.baidu.com';
WebBrowser.Navigate2(url); //初始化WebBrowser为打开空白页面{===========为完成多页浏览的初始化=========}
WBDocumentComplete := WebBrowser.OnDocumentComplete;
WBNewWindow2 := WebBrowser.OnNewWindow2;
end;procedure TFrmMain.WebBrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;var Cancel: WordBool);
begin
{========多页面部分=======}
TS := TTabSheet.Create(self);
TS.PageControl := PageControl;WB := TWebBrowser.Create(self);
WB.Align := alClient;
TS.InsertControl(WB);Ts.Caption := WB.GetNamePath;
PageControl.ActivePage := TS;ppDisp := WebBrowser.Application;
end;工程
program SysLogin;uses
Forms,
Frm_login in 'Frm_login.pas' {FrmLogin},
Frm_Main in 'Frm_Main.pas' {FrmMain},
DMUnit in 'DMUnit.pas' {DM: TDataModule};{$R *.res}
var
FrmLogin: TFrmLogin;
begin
Application.Initialize;
Application.CreateForm(TDM, DM);
Application.CreateForm(TFrmMain, FrmMain);
FrmLogin:=TFrmLogin.Create(nil);
try
FrmLogin.ShowModal;
Finally
FrmLogin.Free;
end;
Application.Run;
end.
因为是主窗体,运行时候先运行这个窗体 的TFrmMain.FormCreate 然后弹出登录框,登录验证成功后自动关闭登陆框,显示出这个主窗体,点击窗体内连接 已然弹出新IE浏览器
脑袋大了~~!!~!~!怎么办啊 怎么让其在新的选项卡中出现呢
希望这个例子对你有帮助
http://blog.csdn.net/simonhehe/article/details/8483582