Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как выполнить метод по его имени?

01.01.2007
Sasan Adami

{ ... }
type
  PYourMethod = ^TYourMethod;
  TYourMethod = procedure(S: string) of Object;


procedure TMainForm.Button1Click(Sender: TObject);
begin
  ExecMethodByName('SomeMethod');
end;


procedure TMainForm.ExecMethodByName(AName: string);
var
  PAddr: PYourMethod;
  M: TMethod;
begin
  PAddr := MethodAddress(AName);
  if PAddr <> nil then
  begin
    M.Code := PAddr;
    M.Data := Self;
    TYourMethod(M)('hello');
  end;
end;


procedure TMainForm.SomeMethod(S: string);
begin
  ShowMessage(S);
end; 
Previous page:
Теория и практика использования RTTI
Top:
DRKB
Next page:
Как определить, является ли метод потомком TNotifyEvent?