Помощь - Поиск - Пользователи - Календарь
Полная версия: Странный лаг (readkey)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
klem4
Хотел решать задачу которая изложена топиком ниже (про перемещение прямоугольника), но забыл ascii коды стрелок и решил их найти, если я пробовал writeln(ord(readkey)) то упорно выдавало нули, потом я решил попробовать вот так :

uses crt;
var
b : byte;
begin

clrscr;

b := ord(readkey);

writeln(b);

readln;

end.


теперь выдет ноль и букву ! например для стрелки вверх буква H
volvo
Объясняю...

Клавиши управления курсором - расширенные, т.е. возвращают сначала #0, а уж потом - расширенный код. Вот так лучше работать с расширенными кодами клавиш:
uses crt;
var
ch: char;
begin
clrscr;

ch := readkey;
case ch of
#0:
writeln(ord(readkey));
else;
end;

readln;
end.

Что происходило у тебя? Клавиша посылает 2 символа в буфер клавиатуры, например, "вверх" посылает #0 + #72... Ты читаешь только один: #0, что произойдет со вторым? Правильно, он будет отображен, как будто он был введен с клавиатуры... Какой символ Chr(72)?

Any questions? smile.gif
klem4
Класc :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.