Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 08.04.2009, 22:16   #1
Rus 47
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 28
По умолчанию ASCII код спец клавиш

Всем привет.
Столкнулся с такой проблемой.
Пишу программу, в которой используются спец клавиши (стрелка влево, вправо, вверх, вниз).
функция ReadKey реагирует на нажатие и выполняет то или иное действие.
Я узнал коды спец. клавиш: 72, 75, 77, 80
но проблема в том что эти же коды привязаны к клавишам H, K, M, P (именно в верхнем регистре)
Выглядит это вот так:
72 - вверх, H
75 - влево, K
77 - вправо, M
80 - вниз, P
Можно ли программу заставить их отличать, тоесть если я нажал клавишу M, то это не должно значить, что я нажал клавишу "вправо" и т.д.
Спасибо.
Rus 47 вне форума Ответить с цитированием
Старый 08.04.2009, 22:26   #2
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Можно. Легко. Перед кодом специальной клавиши считывается #0. По нулю и определять.

То если нажата спецклавиша, ReadKey сначала возвращает #0, а если потом вызвать, код клавиши. А обычные клавиши #0 не возвращают.
OCTAGRAM вне форума Ответить с цитированием
Старый 08.04.2009, 22:31   #3
Rus 47
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 28
По умолчанию

А можно чуть подробнее?
Спасибо.
Rus 47 вне форума Ответить с цитированием
Старый 08.04.2009, 22:37   #4
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Код:
var S : String[2];

S := ReadKey;
if S = #0 then S := S + ReadKey;

{ теперь у S для каждой клавиши разное значение }
OCTAGRAM вне форума Ответить с цитированием
Старый 08.04.2009, 22:52   #5
Rus 47
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 28
По умолчанию

Большое спасибо, разобрался. )
Rus 47 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ОЧЕНЬ ИНТЕРЕСНО! КОД ASCII / обработка массивов данных Jull Паскаль, Turbo Pascal, PascalABC.NET 7 01.04.2009 17:23
Виртуальный код клавиш lionman Общие вопросы Delphi 9 27.10.2008 22:33
Вывести ASCII и SCAN -коды клавиш... StudentBTI Помощь студентам 7 07.10.2008 21:01
спец символы в CSS SUZUKI HTML и CSS 6 18.07.2008 16:39
Код клавиш MAKEDON Общие вопросы Delphi 4 07.01.2008 13:42


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840