Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.04.24;
Скачать: CL | DM;

Вниз

Имя метода procedure of object   Найти похожие ветки 

 
Желание   (2014-10-03 20:14) [0]

Возможно ли узнать имя метода переданного как 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.
Писал прямо здесь, возможны ошибки, но общая суть, вроде, должна быть понятна.


 
MBo ©   (2014-10-04 11:53) [1]

Через новое RTTI получить список методов класса TObject(TMethod(p).Data).ClassName, сравнить адреса с TMethod(p).Code


 
Желание   (2014-10-04 13:55) [2]

Спасибо.
Сработало. Единственное, что есть условности в виде директивы {$RTTI EXPLICIT METHODS([...])}

Но, как я понимаю, других способов нет :(



Страницы: 1 вся ветка

Текущий архив: 2016.04.24;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.006 c
15-1439456322
olle
2015-08-13 11:58
2016.04.24
Штрих-М Повторная печать чека


4-1276949542
lexi
2010-06-19 16:12
2016.04.24
Проверить существование родительского процесса


15-1439131296
Кто б сомневался
2015-08-09 17:41
2016.04.24
Ребят, а чего бы вам не объедениться с delphikingdom


15-1439065887
xayam from NB
2015-08-08 23:31
2016.04.24
Таблица Менделеева


15-1438863349
Кто б сомневался
2015-08-06 15:15
2016.04.24
Win10 EULA - новые проблемы от новой ОСи