Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Derrt
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
1

Считать клавишу если она была нажата

23.05.2015, 20:07. Просмотров 1007. Ответов 7
Метки нет (Все метки)

Добрый день. В программе требуется считывать клавиши через readKey(). Я хочу, чтоб считывание происходило только если клавиша была нажата (то есть в клавиатурный буфер что-то попало).
Я поставил вот такое условие:
Pascal
1
if (keyPressed()) then key := readKey();
Но по какой-то причине в key записывается 0. Я пробовал всякие условия и циклы, но все равно в key 0.
Подскажите, в чем может быть проблема?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2015, 20:07
Ответы с готовыми решениями:

Считать нажатую клавишу
Я когда-то это делал, но не помню, как. Помнится, там было что-то вроде uses...

Вывести полное имя программы, под которым она была запущена/
Здравствуйте! Пожалуйста, помогите с написанием вот такой программы: Вывести...

Образовать последовательность чисел так, чтобы она тоже была неубывающей.
Даны две последовательности а1+а2+….+аn и b1+b2+…+bm Образовать из них...

задача на множества, если она уже решена то прошу ссылку
. Напечатать текст, за которым следует точка. В алфавитном порядке напечатать...

Заменить в каждом слове строки первую букву, если она мала, на большую
В заданной строке заменить в каждом слове первую букву, если она мала, на...

7
Derrt
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
24.05.2015, 23:59  [ТС] 2
Эй, неужели, никто не может мне помочь?
0
JuriiMW
2052 / 1119 / 1595
Регистрация: 10.12.2014
Сообщений: 4,262
25.05.2015, 07:53 3
Лучший ответ Сообщение было отмечено Derrt как решение

Решение

Всё по тому, что ты жмёшь специальные клавиши, которые имеют двойные скан-коды: ведущий 0 и скан-код.
Вероятнее всего — клавиши управления курсором. (В народе — „стрелочки“).

Типичное заблуждение новичков в ТР, когда они считывают всего один символ или вообще не считывают его (просто дожидаются KeyPressed и всё ;–).

Нужно всегда опустошать буфер клавиатуры, если программа читает его напрямую.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses
  CRT;
  
var
  Key : Char;
begin
  repeat
    if KeyPressed then
      begin
        Key := ReadKey;
        if Key = #0 then
          begin
            Key := ReadKey;
            WriteLn('--= 0 + ', Ord(Key), ' =--');
          end
        else
          WriteLn('--= ', Ord(Key), ' =--');
      end;
    Sleep(10);
  until 1=0;
end.
1
Puporev
Модератор
55428 / 42551 / 29405
Регистрация: 18.05.2008
Сообщений: 100,668
25.05.2015, 08:05 4
Цитата Сообщение от Derrt Посмотреть сообщение
В программе требуется считывать клавиши через readKey()
И зачем это в АВС .net?
0
JuriiMW
2052 / 1119 / 1595
Регистрация: 10.12.2014
Сообщений: 4,262
25.05.2015, 08:14 5
Puporev, мож чел меню красивое для консоли пишетъ ;–)

… без мышкоблудства — одними клопами!
1
Puporev
Модератор
55428 / 42551 / 29405
Регистрация: 18.05.2008
Сообщений: 100,668
25.05.2015, 09:10 6
Цитата Сообщение от JuriiMW Посмотреть сообщение
без мышкоблудства
Pascal
1
onkeypress:=keypress;
0
JuriiMW
2052 / 1119 / 1595
Регистрация: 10.12.2014
Сообщений: 4,262
25.05.2015, 09:15 7
onkeypress — это событие модуля GraphABC

keypressed и redkey — это в модуле CRT

А вместе они не работаютъ ;–(
0
Derrt
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 64
25.05.2015, 23:46  [ТС] 8
если честно, то я делаю змейку, что-то типа курсача
0
25.05.2015, 23:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2015, 23:46

Выяснить, содержит ли она символы цифр «0» «9», и если да, то сформировать из них строку и вычислить сумму
4)Дана строка. Выяснить, содержит ли она символы цифр «0».. «9», и если да, то...

Ввести файл вещественных чисел F. Удалить из файла предпоследнюю компоненту, если она отрицательна
Ввести файл вещественных чисел F. Удалить из файла предпоследнюю компоненту,...

Как считать строку, если в ней содержатся и цифры, и буквы
Пользователь вводит кол-во элементов в массиве, однако все эти элементы-строки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru