![]() |
Требуется решить такую задачу:
Нужно, чтобы при нажатии на клавишу Enter вырабатывалось сообщение OnKeyDown формы, если фокус ввода находится, допустим, на TButton. Событие не вырабатывается только при нажатии Enter. P.S. Естественно методы решения есть, но может предложите более элегантный? |
В окне Object Tree выделить посредством Shift все элементы формы и вот банальный пример(полностью не в тему, но принцип тот-же):
1.Напрямую всем элементам присвоить событие OnKeyPress. 2.При вызове события выполнять, например – Close; И тогда на каком бы элементе не находился фокус, в любом случае при нажатии любой клавиши(именно в этом примере) выполнялось бы событие OnKeyPress. Также попробуй реализовать это у себя - при нажатии Enter вызываешь OnKeyPress, которое уже присвоено всем элементам формы. Если не прав, то укажи на ошибку. |
Zema
В обработчике Enter-а на кнопке: if assigned(OnKeyDown) then OnKeyDown(...) Параметры только лень смотреть. |
Дело еще запутано тем, что событие типа OnKeyDown для TButoon не возникает при нажатии Enter (вырабатывается OnClick). Мне же надо, чтобы выполнялись разные действия при нажатии мышкой и Enter.
Electras OnKeyDown не возникает при нажатии Enter |
Zema Дай время, поюзаю...
|
Время: 00:18. |
Время: 00:18.
© OSzone.net 2001-