Консультация № 172341
19.09.2009, 16:40
0.00 руб.
0 8 2
Здравствуйте.
Нужно по клавише 1 показать форму(Form.Show). OnKeyPress(down, up) почему-то не реагируют на это. Как реализовать? Delphi 7.

Обсуждение

давно
Профессионал
153662
1070
19.09.2009, 16:55
общий
Можно по подробнее, по какой именно клавиши Вы хотите сделать (цифровая или f1 или на дополнительной клавиатуре)?
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

Неизвестный
19.09.2009, 17:11
общий
да, если не сложно - кусок кода который должен отработать ваше желание
Неизвестный
19.09.2009, 17:35
общий
И как Вы делаете, что "не получается"? Для Вас будет лучше, если сумеем объяснить что и как ...
давно
Профессионал
153662
1070
19.09.2009, 17:44
общий
Если ВЫ используете процедуры OnKeyPress(down, up) в событиях формы, скорей всего ВЫ не установили перехват формой нажатие клавиш.
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

давно
Специалист
742
345
19.09.2009, 18:41
общий
К примеру так:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=ord('1')
then
begin
Form1.Hide;
Form2.Show;
end;
end;

А как установить перехват?
давно
Специалист
742
345
19.09.2009, 18:44
общий
О! Точно. Установил KeyPreview в true и заработало!
давно
Профессионал
153662
1070
19.09.2009, 19:32
общий
это ответ
Здравствуйте, Sager.
Если ВЫ используете процедуры OnKeyPress(down, up) в событиях формы, скорей всего ВЫ не установили перехват формой нажатие клавиш. Установите Form.KeyPreview:= true и у Вас всё заработает.
5
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

давно
Профессионал
304622
583
23.09.2009, 10:47
общий
это ответ
Здравствуйте, Sager!

Ты наверно прописываешь обработчик OnKeyPress для Form'ы, а на ней есть какие-нибудь компоненты: кнопки и т.д. Видимо, когда ты нажимаешь клавишу, то фокус находится на какой-то из этих компонент и вызывается _её_ обработчик OnKeyPress. Как тут поступать IMHO конкретно не скажешь -- зависит от организации программы, поставленной задачи и т.д. То ли прописывать обработчик во всех компонентах, то ли как-то передавать фокус в нужные моменты и ещё как-то...
Форма ответа