unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, ActiveX;
type
IDocHostShowUI = interface(IUnknown) //自定义接口,类的继承 还没有了解过啊,下面的都是抄来的,不懂得什么意思。
['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
function ShowMessage(hwnd: THandle; lpstrText: POLESTR;
lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR;
dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;
function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;
dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
end;
TWebBrowser = class(SHDocVw.TWebBrowser,IDocHostShowUI)
protected
function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint;
lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;
function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse:
TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
end;
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
function TWebBrowser.ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand, dwData: Integer; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT;
begin
Result := S_FALSE;
end;
function TWebBrowser.ShowMessage(hwnd: THandle; lpstrText, lpstrCaption: POLESTR; dwType: Integer; lpstrHelpfile: POLESTR; dwHelpContext: Integer; var plResult: LRESULT): HRESULT;
begin
plResult := MessageBoxW(hwnd,PWChar(lpstrText),'不得闲测试',65); //注释掉这句就没有弹框了;
Result := S_OK;
end;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('file:///C:/Documents%20and%20Settings/Administrator/桌面/index.html#');
end;
end.
--------------------测试网页-----------------文本文件另存为index.html到桌面-----
<a href="#" οnclick=alert("aaa")>[错误] Unit1.pas(21): Unsatisfied forward or external declaration: 'TWebBrowser.ShowMessage'
[错误] Unit1.pas(23): Unsatisfied forward or external declaration: 'TWebBrowser.ShowHelp'
[致命错误] Project1.dpr(5): Could not compile used unit 'Unit1.pas'</a>
Delphi编译出现 Unsatisfied forward or external declaration 错误 是因为只声明了函数,没有编写函数实体;
文笔差劲啊,老衲也不知道自己在写什么字~~~ 各位看不懂也不要勉强。。。