起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1913|回复: 32

TWebbrowser动态赋函数事件的问题**

[复制链接]
发表于 2007-1-11 20:54:14 | 显示全部楼层 |阅读模式
function WebBrowserGetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;

FWebBrowser.OnGetHostInfo := WebBrowserGetHostInfo;

编译报错,
[错误]:Not enough actual parameters

Delphi中正常,请问可以解决吗?
回复

使用道具 举报

 楼主| 发表于 2007-1-12 10:31:11 | 显示全部楼层
?
回复 支持 反对

使用道具 举报

发表于 2007-1-12 11:33:19 | 显示全部楼层
OnGetHostInfo事件的类型是 procedure(TDOCHOSTUIINFO) of Object;
注意必须是某个对象的方法才可以定义成事件,按照你的写法没有写在类的定义上,当然不行了

因为如果是对象的方法,默认第一个参数传递一个Self的参数,如果不是对象的方法,就不会增加这个默认的参数,所以你1楼会提示参数不够的错误。
在Delphi中是一样的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 11:50:27 | 显示全部楼层
我已经在对象里定义了呀,这里是被我省了.如下
TPage=Class(TObject)
private
    FWebBrowser:TWebBrowser;   
    function WebBrowserGetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;  
public
    ....
   end;

function TPage.WebBrowserGetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
begin
   ...
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 13:59:54 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 15:08:58 | 显示全部楼层
???
回复 支持 反对

使用道具 举报

发表于 2007-1-12 15:19:02 | 显示全部楼层
搂住,你这样的写法应该就可以的,我在2277上测试过,你是哪个版本呢?
type
  TMainForm = class(TForm)
    WebBrowser1: TWebBrowser;
    WebBrowser2: TWebBrowser;
    function WebBrowser1GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
  private
    {private declarations}

  public

    {public declarations}
  end;

implementation


function TMainForm.WebBrowser1GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
begin
  WebBrowser2.OnGetHostInfo := WebBrowser1GetHostInfo;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 16:54:59 | 显示全部楼层
这个问题没有了,和我导入的一个包有关系.但平台中这个事件根本不能用,什么都不写运行都报错:
(Delphi 中的EmbeddedWB没有问题)
Pas代码:
unit MainForm;

interface

uses
  Business.Forms,Business.System,Business.Data,Business.Model;

type
  TMainForm = class(TForm)
    WebBrowser2: TWebBrowser;
    procedure BizFormCreate(Sender: TObject);
    function WebBrowser2GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
  private
    {private declarations}
  public
    {public declarations}
  end;

implementation

procedure TMainForm.BizFormCreate(Sender: TObject);
begin
  WebBrowser2.Navigate('www.goolge.com');
end;

function TMainForm.WebBrowser2GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT;
begin
  //...
end;

end.

error.jpg

43.82 KB, 下载次数: 203

回复 支持 反对

使用道具 举报

发表于 2007-1-12 17:52:00 | 显示全部楼层
我在2277版本上测试了,没有出现搂住8楼的错误信息
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-12 18:17:35 | 显示全部楼层
是吗,我在X3的2611版本里测试也报一样的错!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-23 19:58 , Processed in 0.045943 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表