Как выполнить метод по его имениDelphi , Компоненты и Классы , RTTIКак выполнить метод по его имени
Автор: 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; Перевод: Код на Delphi демонстрирует выполнение метода по его имени с помощью процедуры Обзор кода:
Результатом является всплывающее окно, отображающее строку Альтернативное решение заключается в использовании функций Пример использования
В этом коде используется В статье описано, как выполнить метод в Delphi по его имени, используя функцию MethodAddress и вызов процедуры с помощью оператора TMethod. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |