Оперировать с цифровой частью клавиатуры всегда как будто NumLock занятDelphi , ОС и Железо , КлавишиОперировать с цифровой частью клавиатуры всегда как будто NumLock занят
Оформил: DeeCo procedure TForm1.AppOnMessage(var Msg: TMsg; var Handled: Boolean); var ccode: Word; begin case Msg.Message of WM_KEYDOWN, WM_KEYUP: begin if (GetKeyState(VK_NUMLOCK) >= 0) {NumLock not active} and ((Msg.lParam and $1000000) = 0) {not a gray key} then begin ccode := 0; case Msg.wParam of VK_HOME: ccode := VK_NUMPAD7; VK_UP: ccode := VK_NUMPAD8; VK_PRIOR: ccode := VK_NUMPAD9; VK_LEFT: ccode := VK_NUMPAD4; VK_CLEAR: ccode := VK_NUMPAD5; VK_RIGHT: ccode := VK_NUMPAD6; VK_END: ccode := VK_NUMPAD1; VK_DOWN: ccode := VK_NUMPAD2; VK_NEXT: ccode := VK_NUMPAD3; VK_INSERT: ccode := VK_NUMPAD0; VK_DELETE: ccode := VK_DECIMAL; end; {Case} if ccode <> 0 then Msg.wParam := ccode; end; {If} end; {Case Msg.Message} end; {Case} end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage := AppOnMessage; end; Перевод контента на русский язык: Это фрагмент кода Delphi, который имитирует поведение клавиши NumLock на клавиатуре. Когда клавиша NumLock не активна (т.е., она выключена), код перехватывает определенные события нажатия клавиш и заменяет их эквивалентными кодами клавиш цифровой панели. Расшифровка того, что код делает:
Процедура Альтернативным решением может быть использование встроенных функций Delphi по обработке ввода клавиатуры, таких как настройка пользовательского формата клавиатуры или использование компонента Вот пример настройки пользовательского формата клавиатуры:
В этом примере событие В статье описывается способ программирования, который позволяет всегда учитывать состояние кнопки NumLock на клавиатуре и автоматически заменять символы на цифровой панели на соответствующие символы на стандартной панели. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |