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

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

как запихнуть ф-ю класса в указатель [D6, Win2k]


Андрусь ©   (2003-01-13 12:49:00) 

Привет всем! Столкнулся вот с такой проблемкой. Есть тип TMyFunc=function(i:byte):byte;
a:pointer;b:byte;ф-я класса TMyClass.Myfunc(i:byte):byte;И я хочу в одном месте a:=@Myfunct;А в другом b:=TMyFunc(a)(1);Так вот компилер ругается и не хочет пропускать a:=@Myfunc,если Myfunc - ф-я класса.Подскажите как это обойти.Зараннее всем благодарен.


Skier   (2003-01-14 11:33:00) [1]

>Андрусь
of object


Magic   (2003-01-14 11:16:00) [2]

Как интересно!!!


Alex Konshin   (2003-01-13 21:37:00) [3]

Я вопрос не понимаю: что ты понимаешь под "функцией класса"?
Ты действительно имеешь в виду "class function" или все-таки метод?

У функции класса неявным параметром будет указатель на класс, у метода - на объект.

Если все-таки речь идет о методе, то опиши тип как
TMyFunc=function(i:byte):byte of object;
тогда a:=MyFunc; b := a(1); должно сработать.


Дмитрий Баранов   (2003-01-13 13:45:00) [4]

Либо использовать class function, но из нее нельзя будет получить доступ к переменным объекта.


Дмитрий Баранов   (2003-01-13 13:44:00) [5]

Несовместимость по числу параметров. Первым параметром неявно передается указатель на объект (Self)


Андрусь   (2003-01-13 13:39:00) [6]

не понял к чему здесь ваше замечание.
вопрос стоит так - как ф-ю кл. передать переменной.причем здесь совместимость с ф-ей.


Calm   (2003-01-13 13:37:00) [7]

TObject.MethodAddress(const Name: ShortString): Pointer;


Smithson   (2003-01-13 12:52:00) [8]

Function и Function of object есть типы, между собой не совместимые.
Так что или, или.


Наверх

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