| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > TMethod |
| Автор: stab 26.4.2004, 22:23 | ||||
Есть некоторая процедура, которой передается параметр типа TMethod. Не могу найти удобный способ преобразования любого метода в TMethod. Если просто написать MyProc(TMethod(SomeMethod)); компилер это не проглатывает. Приходится объявлять переменную процедурного типа ей присваивать SomeMethod, а уже потом писать MyProc(TMethod(SomeMethodVariable)); , т.е.:
а хотелось бы так:
|
| Автор: x77 27.4.2004, 08:21 |
| сомневаюсь... метод - это запись. которая может быть и процедурой, и функцией. как ты хочешь привести запись - к процедуре? |
| Автор: <Spawn> 27.4.2004, 12:38 | ||
Вот так может?
|
| Автор: x77 27.4.2004, 12:54 |
| <Spawn>, а если параметров больше? или нет вообще? а если методом является функция, возвращающая значение? это будет работать? |
| Автор: <Spawn> 27.4.2004, 13:46 |
| Передача в функцию метода будет работать, так как это всего лишь указатели(TMethod.Code и TMethod.Data) |
| Автор: x77 27.4.2004, 13:56 |
| но ведь MetodAddres работает не для всех методов? только для published? или я путаю? |
| Автор: stab 27.4.2004, 19:00 | ||||
Здесь же без проблем в переменную SomeMethodVariable заносится информация о методе, а все переменные такого рода ни что иное, как переменные типа TMethod. Надо просто как-то обмануть компилер, что бы он опустил проверку сигнатуры методов. з.ы. жаль, что MethodAddress действительно не для всего работает |
| Автор: p0s0l 27.4.2004, 23:31 | ||
Можно так, правда нужно знать класс объекта (в большинстве случаев я думаю это не проблема):
|
| Автор: Gwire 22.8.2013, 14:19 | ||||||
Если нужно получить указатель на метод объекта, не задумываясь какого он типа этот метод.
То есть
Или проще
|
| Автор: Gwire 22.8.2013, 16:58 |
| Прошу прощения. Похоже с 2004 года это никому не интересно. В 2013 ни кто не задается вопросом как получить указатель на метод. Ведь все давно под .Net кодят. Один я тут такой застарелый решил поделится отстойной информацией. |
| Автор: Poseidon 22.8.2013, 19:02 |
| Нет, все в порядке. Да, где-то ты не прав в плане оживления старой темы, но в остальном молодец. Поисковики это проиндексируют и, возможно, кому-то твой код очень поможет. Не все еще на .Net сидят. |