Delphi中incompatible types: 'TNotifyEvent' and 'Pointer'的问题

varb:TButton;Form1:TForm;implementation{$R*.dfm}procedureButtonClick(Sender:TButton);... var
b: TButton;
Form1: TForm;
implementation
{$R *.dfm}
procedure ButtonClick(Sender: TButton);
begin
ShowMessage(Sender.Name);
end;
begin
b := TButton.Create(Form1);
b.Parent := Form1;
b.OnClick := @ButtonClick; // same as b.OnClick := 'ButtonClick'(此处提示错误)
b.OnClick := nil; // clear the event

错误提示:incompatible types: 'TNotifyEvent' and 'Pointer'

求解决~~~~~~~~~~~~
展开
 我来答
sirouszlh
2013-03-20 · TA获得超过1651个赞
知道小有建树答主
回答量:1038
采纳率:100%
帮助的人:670万
展开全部
b.OnClick := ButtonClick;
就可以了

另外
procedure ButtonClick(Sender: TButton);

改为
procedure ButtonClick(Sender: TObject);

ShowMessage(Sender.Name);

改为
ShowMessage(Tbutton(Sender).Name);
追问
不行呀  还是错的!
追答
没错误的  
我编译通过的
你的代码放的位置有问题吧 给你完整代码
你看看你的代码位置错误在哪儿

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure ButtonClick(Sender: TObject);
{ Public declarations }
end;

var
Form1: TForm1;
b: TButton;
implementation

{$R *.dfm}
procedure TForm1.ButtonClick(Sender: TObject);
begin
ShowMessage(Tbutton(Sender).Name);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
b := TButton.Create(Form1);
b.Parent := Form1;
b.Name:='sert';
b.Caption:='test';
b.OnClick := ButtonClick;
end;

end.
昇非
2025-02-26 广告
昇非一体化产业园(ARISE IIP)是全球领先的基础设施开发商,深耕非洲市场62年,专注于泛非设计、融资、建设和运营定制化产业园区,旨在推动非洲各国的工业化进程,缩小产业差距,促进可持续发展、出口增长与贸易扩展。昇非(ARISE IIP)... 点击进入详情页
本回答由昇非提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式