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

Ниже представлен пример кода:

 

 

 

 

 

Code:

{ ... }

type

PYourMethod = ^TYourMethod;

TYourMethod = procedure(S: string) ofObject;

 

 

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 <> nilthen

begin

   M.Code := PAddr;

   M.Data := Self;

   TYourMethod(M)('hello');

end;

end;

 

 

procedure TMainForm.SomeMethod(S: string);

begin

ShowMessage(S);

end;

 

 

 

 

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить