delphi 动态创建 twebbrowser 并添加事件处理函数
要求:
(1)delphi语言动态创建 twebbrowser控件
(2) 添加事件处理函数DocumentComplete
(3) 添加事件处理函数BeforeNavigate2
谢谢! delphi
[解决办法]
写了个简单的模板,其他事件自己添加下。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SHDocVw;
type
TForm2 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
aWebBrws: TWebBrowser;
procedure MyDocumentComplete(Sender: TObject; const pDisp: IDispatch;
var URL: OleVariant);
procedure MyBeforeNavigate2(Sender: TObject; const pDisp: IDispatch;
var URL: OleVariant;
var Flags: OleVariant;
var TargetFrameName: OleVariant;
var PostData: OleVariant;
var Headers: OleVariant;
var Cancel: WordBool);
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
aWebBrws := TWebBrowser.Create(Self);
Self.InsertControl(aWebBrws);
aWebBrws.OnDocumentComplete := MyDocumentComplete;
aWebBrws.OnBeforeNavigate2 := MyBeforeNavigate2;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
if Assigned(WebBrowser1) then
FreeAndNil(WebBrowser1);
end;
procedure TForm2.MyBeforeNavigate2(Sender: TObject; const pDisp: IDispatch;
var URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
var Cancel: WordBool);
begin
//do something
end;
procedure TForm2.MyDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
//do something
end;
end.