KeyMessage: KeyMessageType;
Свойство KeyMessage возвращает значение, указывающее в результате чего было сгенерировано событие OnKeyPreview.
Событие OnKeyPreview происходит перед такими событиями, как: OnKeyDown, OnKeyPress, OnKeyUp. Для проверки перед каким именно событием произошло событие OnKeyPreview в данный момент используется свойство KeyMessage.
Для выполнения примера предполагается наличие формы и расположенного на ней компонента EditBox с наименованием «EditBox1». Данная процедура установлена в качестве обработчика события OnKeyPreview для «EditBox1».
Sub EditBox1OnKeyPreview(Sender: Object; Args: IKeyPreviewEventArgs);
Begin
If (Args.KeyMessage = KeyMessageType.KeyUp) And (Args.Key = Keys.A) Then
Debug.WriteLine("Отмена события OnKeyUp для клавиши A);
Args.Cancel := True;
End If;
End Sub EditBox1OnKeyPreview;
После выполнения примера если при вводе текста в области компонента была нажата и отпущена клавиша A, то будут обработаны только события OnKeyDown и OnKeyPress. Обработка дальнейшего события OnKeyUp будет отменена.
См. также: