![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Имя метода procedure of object
Желание © (2014-10-03 20:14:00)Возможно ли узнать имя метода переданного как TMethod?
TMyProc = procedure(a: integer) of object
TMyClass = class
procedure SomeProc(a: integer);
c: TMyClass;
p: TMyProc;
c := TMyClass.Create;
p := c.SomeProc;
s: string;
s := TObject(TMethod(p).Data).UnitName + '.';
s := s + TObject(TMethod(p).Data).ClassName;
// s = 'Unit1.TMyClass'
Можно ли получить 'SomeProc'?
PS.
Писал прямо здесь, возможны ошибки, но общая суть, вроде, должна быть понятна.
Желание (2014-10-04 13:55:00) [1]Спасибо.
Сработало. Единственное, что есть условности в виде директивы {$RTTI EXPLICIT METHODS([...])}
Но, как я понимаю, других способов нет :(
MBo (2014-10-04 11:53:00) [2]Через новое RTTI получить список методов класса TObject(TMethod(p).Data).ClassName, сравнить адреса с TMethod(p).Code