Четверг, 28.03.2024, 18:10
Приветствую Вас Посетитель

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » MidletPascal » MidletPascal » Обработка нескольких клавиш сразу
Обработка нескольких клавиш сразу
leonidДата: Суббота, 24.12.2011, 13:10 | Сообщение # 1
Новобранец
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Вышел
Как сделать так, чтоб при одновременном зажатии двух клавиш выполнялось действие?

Вот так ничего вразумительного не получается:

if (keyPress=KE_KEY2) and (keyPress=KE_KEY4) then
begin
x:=x-2;
y:=y-2;
end;

Библиотеки нужны или это вообще никак сделать нельзя?


Сообщение отредактировал leonid - Суббота, 24.12.2011, 13:11
 
PassCallДата: Понедельник, 26.12.2011, 18:54 | Сообщение # 2
Высший программист
Группа: Администраторы
Сообщений: 5
Репутация: 102
Статус: Вышел
Есть такая библиотека. И даже достаточно простая в освоении =)

Назывется lib_ukey;

Пользоваться так:
KeyStart;// включаем

GetKey(x);//получаем код нажатой клавиши. Аналог GetKeyPressed. Вместо x пишем номер нажатой клавиши.
То есть могут быть зажаты 2 клавиши - 2 и 4, к примеру.

Тогда нужно писать примерно так
if (GetKey(1)=KE_KEY2) or (GetKey(2)=KE_KEY2) then y:=y-1;
if (GetKey(1)=KE_KEY4) or (GetKey(2)=KE_KEY4) then x:=x-1;

Еще можно определить число нажатых в данный момент клавиш - GetKeyNum.

и писать вот так
for i:=1 to GetKeyNum do
begin
if GetKey(i)=KE_KEY2 then y:=y-1;
if GetKey(i)=KE_KEY4 then x:=x-1;
end;

Важно заметить, что при использовании этой либы стандартный GetKeyPressed работать перестает!
 
leonidДата: Понедельник, 26.12.2011, 20:43 | Сообщение # 3
Новобранец
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Вышел
Не могу найти никакого ukey'я. Только keys.
 
PassCallДата: Вторник, 27.12.2011, 19:32 | Сообщение # 4
Высший программист
Группа: Администраторы
Сообщений: 5
Репутация: 102
Статус: Вышел
Лови
Прикрепления: Lib_ukey.class (1.7 Kb)
 
Форум » MidletPascal » MidletPascal » Обработка нескольких клавиш сразу
  • Страница 1 из 1
  • 1
Поиск: