Форум: "Игры";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];
ВнизНесколько действий Найти похожие ветки
← →
Mr.Vlad (2007-02-17 23:51) [0]Как в Delphi сделать так, что при нажатии на одну клавишу выполнялось действие, но не прерывалоь при нажатии другой клавиши(первая клавиша всё ещё нажата, т. е. нажаты две клавиши). Пожалуйста, помогите. Спасибо.
← →
akaValerius © (2007-02-18 20:43) [1]Используй onKeyDown а не onKeyPress
← →
Домик (2007-02-19 10:42) [2]
uses
keyboard;
...
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if IsKeyDown(VK_LEFT) then Form1.Left := Form1.Left - 1;
if IsKeyDown(VK_RIGHT) then Form1.Left := Form1.Left + 1;
if IsKeyDown(VK_UP) then Form1.Top := Form1.Top - 1;
if IsKeyDown(VK_DOWN) then Form1.Top := Form1.Top + 1;
end;
← →
Romm (2007-02-27 13:17) [3]
> uses
> keyboard;
при компиляции пишет: [Fatal Error] Unit1.pas(6): File not found: "keyboard.dcu"
Что делать?! Ну всмысли установить или его качать нужно?
← →
Домик (2007-02-27 13:26) [4]По идеи ничего устанавливать не нужно. Какая версия Delphi?
← →
Romm (2007-02-27 13:28) [5]Delphi7
← →
deus krid (2007-02-27 15:42) [6]вроде этот Keyboard.pas вместе с GLScene поставляется =)
а вообще, юзать сей модуль не рекомендую - вон написал помню демку одну. дал другу. а у него антивирус забил, мол моя демка опасный вирус, перехватывает клавишные преривания =)
← →
Домик (2007-02-28 16:13) [7]Проверил, и правда с GLScene. А я не знал.
Значит стандартными способами только как написали выше, через OnKeyDown...
> deus krid (27.02.07 15:42) [6]
Может вообще тогда вообще никакие модули, работающие с устройствами ввода не использовать? А то еще напишет, что мышку приложение отлавливает или еще что-нибудь... :)
← →
Belorus © (2007-02-28 16:27) [8]Проверил, и правда с GLScene. А я не знал.
Да не знал.
Значит стандартными способами только как написали выше, через OnKeyDown...
Опять не знаешь. Чего же ты лажаешь так часто ?GetKeyState,GetKeyboardState
← →
Домик (2007-02-28 21:38) [9]> Belorus © (28.02.07 16:27) [8]
А я не заявлял что я тут гений...
Само утвердился? :)
← →
Belorus © (2007-02-28 22:30) [10]Зачем советовать если не знаешь ? :)
← →
Домик (2007-02-28 23:38) [11]> Зачем советовать если не знаешь ? :)
Я написал пример, который как, оказалось, использует модуль GLScene, причем он не обозначен как все основные модули GLScene двумя заглавными GL, потому о его происхождении я не знал, и как-то даже не задумывался. Далее я лишь отметил, что я был не прав, и предположил что самый стандартный (простой и доступный) способ реализации, того, что нужно автору топика, можно сделать через OnKeyDown формы. :)GetKeyState
иGetKeyboardState
- это уже WinAPI функции. Заглянул в keyboard.pas, там как раз они и используются...
Если переделать мною приведенный выше пример, следующим образом:
if GetKeyState(VK_LEFT) < 0 then Form1.Left := Form1.Left - 1;
...
То все должно работать без keyboard.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c