Главная страница
    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.45 MB
Время: 0.012 c
14-55779
MBo
2003-06-30 11:57
2003.07.17
О вечном случайном...


6-55680
Kisly
2003-05-09 13:51
2003.07.17
7.0


6-55672
BoTToN!k
2003-05-08 09:54
2003.07.17
Отправка почты через сокет


3-55474
MCFire
2003-06-25 16:24
2003.07.17
Как использовать StatusBar во время SQL запроса?


1-55567
Aleksandr
2003-07-04 15:13
2003.07.17
Почему при посылке сообщения окну закрывается моя программа?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский