Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Имя метода 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо