阅读帖子后如何通过新的RTTI设置事件处理程序?,我想知道是否有可能更动态地解决这个问题.例如,我想将任何组件的ALL事件处理程序设置为nil.
使用TValue.From <TNotifyEvent> (SomeMethod)不起作用有两个原因:1.类型未知(可能是TNotifyEvent,TMouseEvent等)2.我不能将'SomeMethod'设置为nil(无效转换)
在旧的RTTI风格中,我会做类似的事情:
var
NilMethod: TMethod;
begin
[...]
NilMethod.Data := nil;
NilMethod.Code := nil;
SetMethodProp (AComponent,PropertyName,NilMethod);
Run Code Online (Sandbox Code Playgroud)