Показать сообщение отдельно
Старый 27.11.2011, 14:18   #16
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Работа музыки и ресурсных файлов

Сообщение от bormotan Посмотреть сообщение
program pr1;
var 
bool:boolean;
    
i,b:integer;
begin
showform
;
bool:=false;
 
repeat
 
if getkeyclicked=ke_key0 then i:=formaddstring('0');
 if 
getkeyclicked=ke_key1 then i:=formaddstring('1');
 if 
getkeyclicked=ke_key2 then i:=formaddstring('2');
 if 
getkeyclicked=ke_key3 then i:=formaddstring('3');
 if 
getkeyclicked=ke_key4 then i:=formaddstring('4');
 if 
getkeyclicked=ke_key5 then i:=formaddstring('5');
 if 
getkeyclicked=ke_key6 then i:=formaddstring('6');
 if 
getkeyclicked=ke_key7 then i:=formaddstring('7');
 if 
getkeyclicked=ke_key8 then i:=formaddstring('8');
 if 
getkeyclicked=ke_key9 then i:=formaddstring('9');
 if 
getkeyclicked=ke_none then i:=formaddstring('ни одна клавиша не нажата');
 
 if 
keytoaction(getkeyclicked)=ga_none   then b:=formaddstring('ни одна');
 if 
keytoaction(getkeyclicked)=ga_up     then b:=formaddstring('вверх');
 if 
keytoaction(getkeyclicked)=ga_down   then b:=formaddstring('вниз');
 if 
keytoaction(getkeyclicked)=ga_left   then b:=formaddstring('лево');
 if 
keytoaction(getkeyclicked)=ga_right  then b:=formaddstring('право');
 if 
keytoaction(getkeyclicked)=ga_fire   then b:=formaddstring('огонь');
 if 
keytoaction(getkeyclicked)=ga_gamea  then b:=formaddstring('A');
 if 
keytoaction(getkeyclicked)=ga_gameb  then b:=formaddstring('B');
 if 
keytoaction(getkeyclicked)=ga_gamec  then b:=formaddstring('C');
 if 
keytoaction(getkeyclicked)=ga_gamed  then b:=formaddstring('D');
 
repaint;
 
delay(100);
 
clearform;
 
until bool;
 

end
у меня теперь еще и getkeyclicked и getkeypressed слепые . выдают ke_none , чтобы я ни делал с клавой . на эмуле и телефоне
Забей на getkeyclicked, он какой-то багнутый. Юзай GetKeyPressed, а что бы повторное нажатие срабатывало, после того, как отпустил кнопку, сделай булеву переменную press, и вот пример:

press:boolean;
key:integer;
................................
key:=GetKeyPressed;
if 
key=KE_NONE then press:=false;

if (
KeyToAction(key)=GA_UP) and (press=falsethen
begin
press
:=true;
// тут всяческие действия
end
key тут используется для оптимизации, нажатую клавишу можно запомнить 1 раз, а не вычислять заного.

И вообще, держись подальше от форм, с ними одно мучение.
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием