И ещё одна подсказка:
"(keytoaction(key) = GA_UP)or(key = KE_KEY2)" keyToAction как бэ реагируент на нажатие кнопки вверх И на кнопку 2.
Пруфкод:
program proof_code;
begin
repeat
delay (10);
until (KeyToAction (GetKeyPressed)=GA_UP);
drawtext ('ТАДА!!!',0,0);
repaint;
delay (2012);
end.
Если же надо уловить нажатие чисто джойстика, то делать надо так:
if (KeyToAction(GetKeyPressed)=GA_UP) and (GetKeyPressed<>KE_KEY2) then ............
А вообще вот список "кнопок" и их расшифровка:
Для KeyToAction(GetKeyPressed):
GA_UP (2 или джойстик вверх)
GA_LEFT (4 или джойстик влево)
GA_RIGHT (6 или джойстик вправо)
GA_DOWN (8 или джойстик вниз)
GA_FIRE (5 или джойстик (центральный))
Для GetKeyPressed:
KE_KEY? (вместо "?" цифра от нуля до девятки) - соответствующая цифровая кнопка
KE_STAR - звёздочка
KE_POUND -решётка
KE_NONE - если вообще никакая кнопка не нажата
Для софт кнопок (слева и справа от джойстика), кнопок "положить/снять трубку", регулирования звука и всех прочих, таких команд не предусмотрено.