![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение адреса процедуры из процедурной переменной [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;