Текущий архив: 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