Как нажать две клавиши, чтобы они работали одновременно.

Тема в разделе "Delphi - Компоненты", создана пользователем Myc0n, 23 фев 2009.

  1. Myc0n

    Myc0n Гость

    Когда я нажимаю две клавиши одновременно, работает только одна из них.
    Я написал:[codebox]procedure TForm1.FormKeyDown2(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    if key=37 then a:=a-2;
    if key=38 then b:=b-2;
    if key=39 then a:=a+2;
    if key=40 then b:=b+2;
    end;[/codebox]
    Но как сделать так, чтобы можно было нажимать больше одной клавиши, и все работали одновременно?
     
  2. etc

    etc Гость

    Как это -
    соотносится с этим -
    ??
     
  3. Poseidon

    Poseidon Гость

    А не получится! Windows корректно может отловить нажатие "буквенной" клавиши с какой-нибудь функциональной (Shift, Alt и т.п.). Нажатие одновременно двух буквенных клавиш невозможно отловить стандартными способами ввиду того, что при нажатии каждой из клавишь Windows посылает WM_KeyDown каждый раз и не смотрит, нажата при этом еще какая-то клавиша или нет (кроме упомянутых функциональных). А вообще, какие комбинации нужно отловить?
     
  4. Myc0n

    Myc0n Гость

    Стрелочки и 3 любые другие
     
  5. etc

    etc Гость

    Почемуц бы не воспользоваться шорткатами?
     
  6. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    обрабатывать WM_KEYDOWN, WM_KEYUP и следить ручками.
    вариант два на каждый keydown делать GetKeyboardState и его анализировать
     
  7. Myc0n

    Myc0n Гость

    А можете показать, как это все применить? Уж извините, что я такой чайник.
     
Загрузка...

Поделиться этой страницей