Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: CL | DM;

Вниз

Указатель на функцию: как проверить его значение, а не вызвать   Найти похожие ветки 

 
KSergey ©   (2003-07-04 10:17) [0]

Есть такие кусочки кода:

type
TSetPermitLogin = procedure {SetPermitLogin}; stdcall;
...
var
SetPermitLogin: TSetPermitLogin;
...
if SetPermitLogin <> nil then

Вот можно ли в последней строке как-то извернуться и объяснить, что я не хочу здесь вызывать пороцедуру? Ф-цию Assigned не рассматриваем - модуля system нет и не надо. Можно конечно свою написать, в которой агрумент просто проверять, но нельзя ли как-то это прямо в if упихнуть? А то сейчас использую промежуточный указатель...


 
Radionov Alexey ©   (2003-07-04 10:19) [1]

...
if @SetPermitLogin <> nil then


 
Юрий Зотов ©   (2003-07-04 10:59) [2]

> модуля system нет и не надо

А вот это вряд ли. Он все равно есть. Так что можете спокойно использовать Assigned.


 
KSergey ©   (2003-07-04 11:57) [3]

> Юрий Зотов © (04.07.03 10:59)
> А вот это вряд ли. Он все равно есть.

Ух ты! И правда.. Вот бы не подумал. ;) Спасибо. (так вот откуда минимальный размер - 16кБ по всей видимости?)

> Radionov Alexey © (04.07.03 10:19)
> if @SetPermitLogin <> nil then

Растолкуйте для меня, пожалуйста, что означает сия конструкция. Вернее так: а что вообще-то хранится в переменной SetPermitLogin? Я так думал, что это просто типизированный указатель на ф-цию, но раз к нему можно применить операцию "дай адрес" - получается, что я ошибаюсь? Т.е. это как бы некий объект получается (не в терминах ООП, разумеется), адрес которого и запрашиваем? Как-то не понятно. Неужели в переменной SetPermitLogin хранится не просто адрес функции? А если адрес, то получается что адрес адреса запрашиваем, что совсем уже не то должно получаться...

Растолкуйте, пжлст, кому не лень.


 
Radionov Alexey ©   (2003-07-04 12:03) [4]

>KSergey © (04.07.03 11:57)
Синтаксическая особенность по поводу "что я не хочу здесь вызывать пороцедуру"


 
KSergey ©   (2003-07-04 14:28) [5]

> Radionov Alexey © (04.07.03 12:03)

Ничего себе, "особенность".... 8\



Страницы: 1 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
3-55438
qwerty2
2003-06-24 14:49
2003.07.17
Нормализация таблиц


3-55390
Vladislav
2003-06-21 16:40
2003.07.17
SQLScript


6-55689
levi
2003-05-08 13:35
2003.07.17
подключение сетевого диска


6-55690
Oleg_delphin
2003-05-12 14:55
2003.07.17
Отправка на FTP


14-55744
vopros
2003-06-30 11:49
2003.07.17
Какую карту видео лучше купитб до 90$