Как выполнить метод по его имени?
Ниже представлен пример кода:
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; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!