Конференция "Компоненты" » Что-нибудь чтобы ловить нажатия клавиш [D7, WinXP]
 
  • Пётр (14.04.08 20:14) [0]
    Просто когда фокус, например, на кнопке, сообщения о стрелках и об Enter'е не ловятся. На каком компоненте должен быть фокус, чтобы можно было отметить все нажатия?
    P.S. Возможно, нубский вопрос, но я ответ не нашёл
  • {RASkov} © (14.04.08 20:33) [1]
    > [0] Пётр   (14.04.08 20:14)

    фокус-покус.... ветка переместиться или закроется, если не соберешься с мыслями.
  • Kolan © (14.04.08 20:44) [2]
    Поставить KeyPreview у формы + обработчик OnKeyPress формы.
    ?
  • Пётр (14.04.08 20:47) [3]
    Ладно, поставим вопрос по-другому. Как исправить следующий код, чтобы он ловил нажатия клавиш?

    procedure MyKeyDown (var Key: Word); message WM_KEYDOWN;
    ...
    procedure TfrmMediaPlayer.MyKeyDown(var Key: Word);
    begin
     case key of
     vk_up: ...;
     vk_down: ...;
     vk_delete: ...;
     end;
    end;

  • Пётр (14.04.08 20:48) [4]
    О, Kolan, спасибо, ща попробую! Не знал про KeyPreview.
  • Пётр (14.04.08 20:50) [5]
    Блин. Фишка в том, что стрелки и Enter (в каких-то случаях) не генерируют событий OnKeyDown :(
  • Пётр (14.04.08 21:03) [6]
    KeyPreview то работает, то не работает, в зависимости от фокуса-покуса
  • Kolan © (14.04.08 21:05) [7]
    OnShortCut ?
  • Kolan © (14.04.08 21:07) [8]
    KeyPreview то работает, то не работает, в зависимости от фокуса-покуса
    Слабо верится.
  • Пётр (14.04.08 21:19) [9]

    > Слабо верится.

    При нажатии на стрелку иногда просто меняется фокус, иногда ещё и вызывается событие. А как насчёт WN_KEYDOWN? Как с ним написать процедуру?
  • Kolan © (14.04.08 21:55) [10]
    Читай справку:
    Navigation keys (Tab, BackTab, the arrow keys, and so on) are unaffected by KeyPreview because they do not generate keyboard events.

  • Пётр (14.04.08 22:11) [11]
    Я это и перевёл. Так как их нажатия отловить?
  • Пётр (14.04.08 23:22) [12]
    Так-с, стрелки работают на MaskEdit'ах. Enter пока не нашёл.
 
Конференция "Компоненты" » Что-нибудь чтобы ловить нажатия клавиш [D7, WinXP]
Есть новые Нет новых   [134464   +62][b:0][p:0.001]