对象的事件必须指向一个方法(对象的函数, of object),这就好办了,因为可以用
rtti来完成你想做的,如果是普通函数和过程,根本就没有保存什么函数名在编译后的
程序中,也就根本不能实现你的功能
如下:
uses typinfo,...;
procedure TForm1.Button2Click(Sender: TObject);
var
m: TMethod;
sf: TObject;
begin
if Assigned(button1.Onclick) then
begin
m := typinfo.GetMethodProp(Button1, 'OnClick');
sf:=TObject(m.Data);
ShowMessage(sf.MethodName(m.code));
end;
end;