Войти

Показать полную графическую версию : Delphi


Zema
29-04-2003, 00:48
Требуется решить такую задачу:
Нужно, чтобы при нажатии на клавишу Enter вырабатывалось сообщение OnKeyDown формы, если фокус ввода находится, допустим, на TButton. Событие не вырабатывается только при нажатии Enter.
P.S. Естественно методы решения есть, но может предложите более элегантный?

Electras
29-04-2003, 03:13
В окне Object Tree выделить посредством Shift все элементы формы и вот банальный пример(полностью не в тему, но принцип тот-же):
           1.Напрямую всем элементам присвоить событие OnKeyPress.
           2.При вызове события выполнять, например – Close;
И тогда на каком бы элементе не находился фокус, в любом случае при нажатии любой клавиши(именно в этом примере) выполнялось бы событие OnKeyPress.

Также попробуй реализовать это у себя - при нажатии Enter вызываешь OnKeyPress, которое уже присвоено всем элементам формы. Если не прав, то укажи на ошибку.

vasketsov
29-04-2003, 06:52
Zema

В обработчике Enter-а на кнопке:

if assigned(OnKeyDown) then
OnKeyDown(...)

Параметры только лень смотреть.

Zema
01-05-2003, 01:25
Дело еще запутано тем, что событие типа OnKeyDown для TButoon не возникает при нажатии Enter (вырабатывается OnClick). Мне же надо, чтобы выполнялись разные действия при нажатии мышкой и Enter.

Electras
OnKeyDown не возникает при нажатии Enter

Electras
01-05-2003, 01:52
Zema Дай время, поюзаю...




© OSzone.net 2001-2012