Турбо Паскаль 6.0

Виды событий.


Давайте посмотрим на возможные значения Event.What. Существуют 4 основных базовых класса событий: события от мышки, события от клавиатуры, события сообщений и "пустые" события. Каждый класс имеет определенную маску, так что Ваш объект может быстро определить какой тип события случился, не заботясь о его конкретном виде. Например, вместо того, чтобы проверять на 4 различных вида событий от мышки, Вы можете просто проверить, есть ли флаг события в маске. Вместо

if Event.What and (evMouseDown or evMouseUp or evMouseMove or evMouseAuto) <> 0 then .

Вы можете использовать

if Event.What and evMouse <> 0 then .

Доступны следующие маски: evNothing (для "пустых" событий), evMouse, для событий от мышки; evKeyBoard, для событий от клавиатуры и evMessage для сообщений. Биты маски событий определены на рис.5.5.

Рис. 5.1. Биты поля TEvent.What.

+--------- Event Flags ---------+ msb lsb +-+-+-+-+-+-+-+------------------- evMessage = $FF00 | | | | | | | | +----------- evKeyboard = $0010 | | | | | | | | | +-+-+-+--- evMouse = $000F +++++++++++++++++=+=+=+++++++++++ +=+=+=+=+=+=+++++=+=+=+++++++++++ | | | | | | +--- evMouseDown = $0001 | | | | | +----- evMouseUp = $0002 | | | | +------- evMouseMove = $0004 | | | +--------- evMouseAuto = $0008 | | +----------- evKeyDown = $0010 | +------------------- evCommand = $0100 +--------------------- evBroadcast = $0200



Содержание раздела