Главная страница
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.009 c
2-1411245669
Stepan4ik
2014-09-21 00:41
2016.04.24
Function 2 значения


2-1411410140
Viktor
2014-09-22 22:22
2016.04.24
RS-232 Помогите!


15-1439587804
Юрий
2015-08-15 00:30
2016.04.24
С днем рождения ! 15 августа 2015 суббота


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


15-1439447496
K-1000
2015-08-13 09:31
2016.04.24
Неверно работает RandomRange()