ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ
Главная » Статьи » Программирование » Delphi |
Программируем на Delphi - система сообщений Что такое сообщение? Это информацтя о некотором изменении в пользовательском интерфейсе, например перемещение окна или нажатие клавиши на клавиатуре. Сообщения также уведомляют программу, что истек заданный отрезок времени. Сообщения используются для операций с совместным использованием данных. С точки зрения программиста, сообщение - это целое значение беззнака, которому для простоты чтения назначена символьная константа, начинабщаяся с символов wm_ (Window Message). Например, сообщение wm_lbuttondown говорит программе, что пользователь нажал левую кнопку мыши, wm_lbuttonup говорит, что пользователь отпустил левую кнопку мыши. Каждая Windows программа занимается лишь тем, что реагирует на получаемые сообщения. В Delphi операции с сообщениями скрыты глубоко в VCL, причем когда вы назначаете обработчик какого-либо события, на самом деле вы назначаете обработчик соответствующего сообщегия. Естественно, что не все сообщения реализованы в Delphi как события и с этими сообщениями нужно работать самомтоятельно. Ссообщение можно представить следующей записью: msg : longint; // номер сообщения lParam : longint; // информационные wParam : longint; // поля end; В полях lParam и wParam содержится дополнительная информация о происшедшем событии, например, для сообщения wm_lbuttondown в lParam содержатся координаты указателя мыши момент нажатия кнопки мыши, в wParam содержатся сведения были ли нажаты клавиши Ctrl или Shift в момент нажатия кнопки мыши. Если вам нужно перехватить сообщение, делайте так:(в качестве примера рассмотрим wm_mousemove) Кстати, вместо записи TMessage вы мжете использовать TWMxxx, где xxx зависит от сообщения (для wm_command, например, - TWMCommand и т.п.) Поступающие в программу сообщения выстраиваются в очередь, из которой они извлекаются либо оконной поцедурой, либо вашей процедурой-перехватчиком. Программа может не только принимать, но и рассылать сообщения. Это делается с помощью функций SendMessage и PostMessage. PostMessage ставит сообщение в очередь, SendMessage посылает сообщение напрямую, минуя очередь. Синтаксис: | |
Просмотров: 441 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |