| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Procedural types in statements and expressions |
| Автор: Christoph 30.1.2009, 19:22 | ||||||
нашел в справке такую инфу
так вот написано что @F хранит адресс, адресс функции, и написано чтоб получить адресс процедурной переменны, то надо писать @@F, разве @F и @@F отличаются? Вот решил написать небольшой пример, но есть своки бока
Правильно ли я вывожу адресс? а то мне выводит пустое окно, а если пишу так:
...то ошибка вылетает, ошибка AV. Можете помочь разъяснить ситуацию? Спасибо |
| Автор: Bose 30.1.2009, 19:24 | ||
| procedure TForm1.FormCreate(Sender: TObject); begin Proc:=@Fun; ShowMessage(IntToStr(@Proc)); end; Добавлено @ 19:25 К тому же всё это можно записать как:
Добавлено @ 19:25 без заморочек с @ |
| Автор: bems 30.1.2009, 19:41 |
| тут еще нужно привести указатель к целому |
| Автор: Christoph 30.1.2009, 19:42 | ||
Bose, ты ошибаешся, запись
Будет требовать параметры, и будет пытаться присвоить результат переменной Proc.Была бы процедура другое дело, А переменная Proc у меня другого типа Мне кажется что приведения IntToStr не сработает) потом что там указатель и string, я не знаю, я чуть позже попробую |
| Автор: bems 30.1.2009, 19:47 | ||
|
| Автор: bems 30.1.2009, 21:51 |
| а разве не это надо было? |
| Автор: Christoph 30.1.2009, 23:39 | ||||||
Bose, да прости чуть не продумал, не хотел тебя обвенять
Выводит 4545536
Выводит 4530368, адресса разные, что же получается?! Пример для наглядности
Значит получается так и есть что @@Proc возращает адресс переменной Proc, а @Proc указывает на адресс начало функции, и не разу не видел чтоб был оператор @@,эх ну ладно, надо учить асм) bems, Bose, спасибо за обсуждение темы. P.s если не будет комментариев я тему закрываю |
| Автор: Bose 31.1.2009, 06:36 |
Это. |
| Автор: bems 31.1.2009, 16:21 | ||
а зачем авторам хелпа распространять ложную информацию? ну да, так и есть значит мало кода читал. Это встречается. ну для общего развития оно не помешает, но как это вытекает из этого топика я не понял. Тут и без знания ассемблера все складывается в нормальную картинку |