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

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

Получение адреса процедуры из процедурной переменной [D5, Win95/98]


pirat ©   (2002-10-12 02:53:00) 

А можно ли так вообще сделать?


reonid   (2002-10-12 17:14:00) [1]

Для процедурных типов переопределён оператор @.
p := @f; //- значение f как указателя (по сути - pointer(f))
p := @@f; //- адрес переменной f


pirat   (2002-10-12 12:27:00) [2]

Только что попробовал - не работает :(((
p = nil


pirat   (2002-10-12 05:17:00) [3]

Точно! Спасибо!!


PVOzerski   (2002-10-12 03:37:00) [4]

Если процедура - не метод объекта/класса, содержимое процедурной переменной
и есть адрес процедуры. Только добраться с помощью обычного преобразования типов до этого
не всегда получается из-за неоднозначности синтаксиса. Например:
var
f:function:longint;
p:pointer;
..
p:=pointer(f);
компилятор трактует как преобразование возвращаемого функций значения, а не
самой процедурной переменной. Но выход-то есть, и не один. Например:

var
f:function:longint;
p:pointer absolute f;


Наверх

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