请问我怎样取得BUTTON的ONCLICK事件的名称!(50分)

  • 主题发起人 主题发起人 wrq-50882
  • 开始时间 开始时间
W

wrq-50882

Unregistered / Unconfirmed
GUEST, unregistred user!
请问我怎样取得BUTTON的ONCLICK事件的名称!
 
好象表达的有点问题,
 
这个取不到把?
但是可以通过
if assigned(button.onclick) then
button.onclick(button)
来调用那个函数
 
我现在是要取得执行这个事件的过程的名称,而不是要执行这个过程!还请各位再考虑一个!
 
按钮单击过程= Button1.Click;
 
按钮单击过程= Button1.Click;
能showmessage() Button1.Click的过程的名称吗?
 
哈哈,可以的啊
应该是用GetMethodProp吧。
 
对象的事件必须指向一个方法(对象的函数, 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;
 
接受答案了.
 
后退
顶部