Как правильно присвоить указатель на метод?

Linux_64
Дата: 20.09.2019 16:15:18
Всем привет! Нужна помощь. Я запутался.
Имеется процедура - стандартный обработчик, при нажатии на кнопку.
Чуть ниже имеется функция, которая должна установить "значение событию" OnClick.
Как правильно следует присваивать указатель на метод Button44Click ?
Procedure TForm2.Button44Click(Sender: TObject);
begin
 //
end;

//
Procedure SetMethodRTTI(A: TObject; EventName: string): boolean;
var
 TM: TMethod; 
 // A- содержит объект(компонент), например Button44
 // EventName - содержит имя метода(события), например OnClick
begin
 try
  TM.Data:= A;
  TM.Code:= @EventName;
  SetMethodProp(A, @EventName, TM);
  if TM.Code<>nil then
  begin
   Result:= True;
  end
  else
  begin
   Result:= False;
  end;
 except
  //
 end;
end;
// Если я явно укажу:

// TM.Data:= Button44;
// TM.Code:= @Button44Click;

// Так правильно? Или так ?

// TM.Data:= Button44;
// TM.Code:= Form2.Button44Click;
//
// SetMethodProp(A, ?, TM); 
_Vasilisk_
Дата: 20.09.2019 16:28:36
Linux_64
Procedure SetMethodRTTI(A: TObject; EventName: string): boolean;
Здесь не хватает самого обработчика для установки.

Если это делать из метода формы, то так

procedure TForm2.SetMethod;
var
  LEvent: TNotifyEvent;
  LMethod: TMethod;
begin
  LEvent := Button44Click;
  LMethod := TMethod(LEvent);
  SetMethodProp(Button44, 'OnClick', LMethod);
end;
Linux_64
Дата: 20.09.2019 16:38:06
_Vasilisk_, то есть у меня по-сути не хватает в функции третьего параметра P: PTypeInfo
И передавать он будет например TypeInfo(TKeyEvent), верно ?
Linux_64
Дата: 20.09.2019 16:43:18
А если я это делаю не из метода формы, что в этом случае будет содержать
TM.Data:= ???
TM.Code:= ???
Linux_64
Дата: 20.09.2019 16:49:57
А если я это делаю не из метода формы, что в этом случае будет содержать
TM.Data:= ???
TM.Code:= ???
Linux_64
Дата: 20.09.2019 16:53:44
Все. Уже разобрался. Спасибо!
_Vasilisk_
Дата: 20.09.2019 17:35:22
Linux_64
А если я это делаю не из метода формы, что в этом случае будет содержать
TM.Data:= ???
TM.Code:= ???

TM.Data:= Form2
TM.Code:= @Form2.Button44Click
Linux_64
Дата: 20.09.2019 17:40:45
_Vasilisk_, Да, я уже разобрался. Спасибо вам!
Foxpc
Дата: 20.09.2019 18:36:20
19383989 для RTTI мощи немеренно
Foxpc
Дата: 20.09.2019 18:38:08
А тут ещё есть новее 21676268