Как выполнить метод по его имени
Автор: Sasan Adami
WEB-сайт: http://www.lmc-mediaagentur.de
{ ... }
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;
|