У меня есть поле TEdit, и мне нужно вызвать действие из списка действий при нажатии кнопки ENTER/RETURN, когда он сфокусирован на нем (как в большинстве поисковых систем). Использование Lazarus 0.9.28.2-12 и Ubuntu 11.04
Регистрация ввода в TEdit (Delphi/Free pascal)
Ответы (2)
Обработайте событие OnKeyDown и проверьте наличие Key=VK_RETURN
.
person
David Heffernan
schedule
01.05.2011
Да, а затем вы также можете просмотреть и удалить сообщения клавиатуры, чтобы звуковой сигнал исчез. Или вы можете использовать
OnKeyPress
с ord(Key) = VK_RETURN
.
- person Andreas Rejbrand; 02.05.2011
Спасибо, ребята, это сработало. Но перед использованием VK_RETURN вы также должны включить LCLType lib:
uses LCLtype;
- person Archer; 02.05.2011
Лучше использовать OnKeyUp вместо OnKeyDown. Причина этого в том, что если вы нажмете Enter, он может сгенерировать много событий (фактически он будет генерироваться до тех пор, пока не будет нажата клавиша), что нежелательно. Использование OnKeyUp и проверка того, является ли ключ VK_RETURN, будет намного лучше и вызовет только 1 событие, пока не произойдет следующий выпуск.
person
Javor
schedule
04.05.2011
стандарт заключается в том, что действия должны запускаться при нажатии клавиши, а не при нажатии клавиши. Использование клавиши вверх неправильно.
- person David Heffernan; 04.05.2011