当前位置:  开发笔记 > 开发工具 > 正文

在Delphi 2007中设置事件处理程序并获取"参数列表不同"错误

如何解决《在Delphi2007中设置事件处理程序并获取"参数列表不同"错误》经验,为你挑选了1个好方法。

我正在尝试在Delphi 2007中编写一个使用ActiveX库的类.该类将捕获ActiveX库必须公开其自身事件的事件,该事件将一些信息添加到ActiveX库的事件中.

最重要的是,当我将自己的过程分配给我想要使用的ActiveX库的事件时,我收到一个错误:

E2009 Incompatible types: 'Parameter lists differ'

我确定参数列表是相同的(相同数量的参数和相同的类型)所以我在想我会以错误的方式去做.

任何建议或有人可以发布我正在尝试做的一些示例代码?



1> Rob Kennedy..:

要检查的第一件事是,您尝试分配给事件属性的是一个方法.它需要是属于类的过程或函数; 它不能是一个独立的子程序.

接下来,请注意仅仅确认类型的名称匹配是不够的.Delphi允许重新定义标识符,因此当您在另一个单元中看到相同的标识符时,您在一个单元中看到的类型名称不一定是指同一个名称.意义甚至可以在单位中间改变.例如:

unit Example;

interface

uses Windows;

var
  foo: TBitmap;

implementation

uses Graphics;

var
  bar: TBitmap;

end.

foo变量具有类型Windows.TBitmap,记录类型,而bar已经键入Graphics.TBitmap,一个类的类型.

您可以让IDE帮助您诊断:按住Ctrl键并单击标识符名称,让IDE带您进行声明.他们带你到同一个地方吗?如果没有,那么您可以使用单位名称限定类型名称.例如,我们可以将bar上面的声明更改为:

var
  bar: Windows.TBitmap;

现在它将具有相同的类型foo.在事件处理程序声明中检查相同的事情.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有