回看旧时代码,以往清楚之记忆渐渐模糊,事隔多年,遗忘正在发生。
TMethod方法,当初熟练再看已陌生,再做复习以作备忘。
简言之,它做为一相桥接,将普通事件或方法转换为类方法,其多用于事件动态设置中。
它定义如此:
TMethod = record Code, Data: Pointer; end;
以代码示之,如下:
//此处可为procedure,亦可为function。参数也可随意设置 procedure FormOnClick(Sender: TObject); begin ShowMessage('click event: ' + Sender.ClassName); end; procedure TForm1.FormCreate(Sender: TObject); var M: TMethod; begin M.Code := @FormOnClick; M.Data := Self; OnClick := TNotifyEvent(M); end;
测试一下,事件完美挂接: