Главная страница
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.012 c
1-55649
MsGuns
2003-07-03 19:28
2003.07.17
Чувствительность объектов к перемещениям мыши


7-55879
vf
2003-05-01 00:51
2003.07.17
Связать виртуальный и реальный мир


1-55616
stalker780
2003-07-03 17:37
2003.07.17
Освобождение окна


3-55417
muk07
2003-06-24 09:14
2003.07.17
Некорректное взаимодействие varchar(много) и TMemo


14-55736
belousov
2003-07-02 18:06
2003.07.17
Подземный стук ;)