Показать сообщение отдельно
Старый 22.04.2007, 00:10   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: работа с клавиатурой. однократное нажатие клавиши

Я не уверен, но можно попробовать примерно так:

const
num_keys=10;//кол-во клавиш
LEFT_PRESSED = 4;//код клавиши Left из примера

var
keys:array[1..num_keys]of boolean;//массив состояний клавиш
//true-нажата,false-отпущена
key:integer;
index:integer;//номер в массиве последней нажатой клавиши


begin
....
//гдето в цикле обработки клавы...
key:=getkeyclicked;
if game.get_bit(key, LEFT_PRESSED)<>0 then
begin
if not keys[1] then делаем что надо//если клавиша не нажата то делаем ///что надо
keys[1]:=true;
index:=1;
end;

***//аналогично остальные клавиши

while not
(game.get_bit(key, LEFT_PRESSED)=0)and(
game.get_bit(key, RIGHT_PRESSED)=0)and(Другие клавиши) do delay(100);
//пока кнопку не отпустят, крутимся на месте
keys[index]:=false;
//далее по циклу

ЗЫ.чем не устраивает совместное использование
стд и библиотечных функций как в кпимере?
(Offline)
 
Ответить с цитированием