Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

LongInt


Comp ©   (2004-10-02 14:36:00) 

Здравствуйте, уважаемые мастера. Объясните новичку пожалуйста, что означает запись
LongInt(@MyVariable) ?
LongInt(PChar('МойТехт')) ???
Это так надо писать, когда посылаешь некоторые сообщения в параметре WParam (или LParam, не помню).
Пожалуйста.


Ihor Osov'yak   (2004-10-02 14:59:00) [1]

дело в том, что WParam, LParam - 32 битные целочисельные.
а довольно часто нужно передавать указатель на некие структуры. Приведенные Вами записи - приведение совместимых типов (указателя к 32 битному целочисельному, указателть в win32 - 32 битный также).

Итак.
MyVariable - некая переменная.
@MyVariable - адресс этой переменной, по существу - указатель
LongInt(@MyVariable) - приведение типа. Паскаль, он очень строг с типами, здесь мы говорим компилятору о том, что мы берем на себя ответсвенность за такое, не совсем безопасное в общем случае (а в частном - вполне допустимое) приведение. Фактически, здесь мы подстраиваемся под стиль сишников.

 LongInt(PChar('МойТехт')) ???
Здесь немного сложнее.
'МойТехт' - строка,
PChar - компилемагик, возвращает адресс начала тела той строки. Далее анологично первому случаю.


Наверх

Титульная страница Поиск, карта сайта Написать письмо