Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Странный лаг (readkey)

Автор: klem4 30.09.2005 0:50

Хотел решать задачу которая изложена топиком ниже (про перемещение прямоугольника), но забыл ascii коды стрелок и решил их найти, если я пробовал writeln(ord(readkey)) то упорно выдавало нули, потом я решил попробовать вот так :

uses crt;
var
b : byte;
begin

clrscr;

b := ord(readkey);

writeln(b);

readln;

end.


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

Автор: volvo 30.09.2005 1:12

Объясняю...

Клавиши управления курсором - расширенные, т.е. возвращают сначала #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 30.09.2005 1:14

Класc :D