Помощь - Поиск - Пользователи - Календарь
Полная версия: Странный лаг (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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.