Delphi - Delphi

Ответить
Аватара пользователя
Zema

Delphi - Delphi

Сообщение Zema »

Требуется решить такую задачу:

Нужно, чтобы при нажатии на клавишу Enter вырабатывалось сообщение OnKeyDown формы, если фокус ввода находится, допустим, на TButton. Событие не вырабатывается только при нажатии Enter.

P.S. Естественно методы решения есть, но может предложите более элегантный?
Аватара пользователя
Zema

Re: Delphi - Delphi

Сообщение Zema »

В окне Object Tree выделить посредством Shift все элементы формы и вот банальный пример(полностью не в тему, но принцип тот-же):

           1.Напрямую всем элементам присвоить событие OnKeyPress.

           2.При вызове события выполнять, например – Close;

И тогда на каком бы элементе не находился фокус, в любом случае при нажатии любой клавиши(именно в этом примере) выполнялось бы событие OnKeyPress.



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

Re: Delphi - Delphi

Сообщение vasketsov »

Zema



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



if assigned(OnKeyDown) then

OnKeyDown(...)



Параметры только лень смотреть.
Аватара пользователя
vasketsov

Re: Delphi - Delphi

Сообщение vasketsov »

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



Electras

OnKeyDown не возникает при нажатии Enter
Аватара пользователя
Zema

Re: Delphi - Delphi

Сообщение Zema »

Zema Дай время, поюзаю...
Ответить

Вернуться в «Программирование и базы данных»