Главная страница
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.004 c
2-1411410140
Viktor
2014-09-22 22:22
2016.04.24
RS-232 Помогите!


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


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


2-1412352887
Желание
2014-10-03 20:14
2016.04.24
Имя метода procedure of object


15-1439457626
NailMan
2015-08-13 12:20
2016.04.24
Помогите с написанием функции для ардуинки