5,386
社区成员
发帖
与我相关
我的任务
分享
procedure ReSetObjEvent(OldEventAddr: pointer;NewEventValue: pointer;ReSetObject: TObject);
begin
TMethod(OldEventAddr^).Code := NewEventValue;
TMethod(OldEventAddr^).Data := ReSetObject;
end;
procedure MyClick(Sender: TObject;s:string);
begin
showmessage((Sender as Tbutton).Caption+'____'+ s);
end;
TControl = class(TComponent)
...
protected
...
procedure Click; dynamic;
procedure MyClick(Sender: TObject;s:string);
begin
showmessage((Sender as Tbutton).Caption+'____'+ s);
end;
procedure MyClickWrapper(O, Sender: TObject);
begin
MyClick(Sender, 'abcd');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
asm//将MyClickWrapper赋给Button1.OnClick
mov edx,[eax+Button1]
mov [edx+$110], offset MyClickWrapper
mov [edx+$114], eax
end;
end;