Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Delphi (http://forum.oszone.net/showthread.php?t=30526)

Zema 29-04-2003 00:48 208969

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

Electras 29-04-2003 03:13 208970

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

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

vasketsov 29-04-2003 06:52 208971

Zema

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

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

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

Zema 01-05-2003 01:25 208972

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

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

Electras 01-05-2003 01:52 208973

Zema Дай время, поюзаю...


Время: 00:18.

Время: 00:18.
© OSzone.net 2001-