Обнаружить на форме одновременное нажатие нескольких клавишDelphi , ОС и Железо , КлавишиОбнаружить на форме одновременное нажатие нескольких клавиш
Оформил: DeeCo { I would like to detect more than 2 keys being pressed within a form. For example I would like to know if the user pressed time. The onkeydown seems to only check for one or two keys max but surely you can determine what keys are currently down. } // You can use GetKeyState: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If ((GetKeyState(VK_CONTROL) AND 128)=128) and ((GetKeyState(VK_F5) AND 128)=128) and ((GetKeyState(ord('8')) AND 128)=128) then ShowMessage('CTRL+F5+8 Pressed'); end; ( Remember: Form1.Keypreview := TRUE ) // Or you can read the entire KeyBoard Status, // and later check for the three keys: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var KeybState: TKeyboardState; begin GetKeyboardState(Teclado); If ( (KeybState[VK_CONTROL] and 128)=128 ) and ( (KeybState[VK_F5] and 128)=128 ) and ( (KeybState[Ord('8')] and 128)=128 ) then ShowMessage('CTRL+F5+8 Pressed'); end; Переведенный текст: Код, предназначен для обнаружения ситуации, когда пользователь одновременно нажимает несколько клавиш, включая клавишу Ctrl, клавишу F5 и клавишу '8'. Методология использует комбинацию двух подходов: Метод 1: Использование GetKeyState В этом методе код проверяет, является ли каждая клавиша нажатой, используя функцию Метод 2: Чтение всего состояния клавиатуры В этом методе код использует переменную Имущества и предложения
Вот улучшенный код:
Не забудьте определить коды клавиш как константы или enum и адаптировать код в соответствии с вашими конкретными требованиями. Обнаружить на форме одновременное нажатие нескольких клавиш может быть выполнено с помощью процедуры FormKeyDown, которая использует функцию GetKeyState для чтения состояния всех клавиш и последующего сравнения его с необходимым набором. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |