TPoc в TNotifyEvent

В дополнение к этому сообщению , принятый ответ которого остается очень загадочным:

@Button1.OnClick := pPointer(Cardinal(pPointer( procedure (sender: tObject) begin ((sender as TButton).Owner as TForm).Caption := 'Freedom to anonymous methods!' end )^ ) + $0C)^;

Интересно, можно ли изобрести простейший и изящный способ, подобный:

Button.OnClick :=
                    AnonProc2NotifyEvent (
                    procedure (Sender: TObject)
                    begin
                      ((Sender as TButton).Owner as TForm).Caption := 'Freedom to anonymous methods!'
                    end
                      );

для достижения той же цели, и где AnonProc2NotifyEvent является методом владельца Button со следующей подписью:

TOwnerOfButton = class(TForm)
  Button: TButton;
 ...
private
 ...
protected
  function AnonProc2NotifyEvent(aProc: TProc<TObject>): TNotifyEvent;
public
 ...
end;

Возможно ли это, и если да, то как это реализовать?

16
задан Community 23 May 2017 в 11:54
поделиться