Delphi FAQ - Как использовать в качестве обработчика сообщения обычную процедуру, а не метод объекта?

ОГЛАВЛЕНИЕ


Как использовать в качестве обработчика сообщения обычную процедуру, а не метод объекта?

У этой процедуры должен быть еще один дополнительный параметр.
В метод класса кpоме паpаметpов, обьявленных в заголовке, пеpедаётся  ещё
паpаметp Self
procedure MyRegularProc(ASelf, Sender: TObject);
begin
  ShowMessage(ASelf.ClassName + ' ' + Sender.ClassName);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  amethod: TMethod;
begin
  amethod.Code := @MyRegularProc;
  amethod.Data := Self;
  Button1.OnClick := TNotifyEvent(amethod);
end;
Leonid Troyanovsky <Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.>