Здравствуйте.Я недавно достал в интнрнете бесплатно распространяемую версию FREE PASCAL.Но вот проблема, захотелось написать игрушку,а в графическом режиме не осуществляеться доступ до клавиш. Тоесть {ch:=readkey; if ch=#75 then begin ---- end;} Неработает Подскажите что делать.
Здравствуйте, max! А BP - это теперь типа стремно да? ну возможно ты типа хочешь так прочить стрелку кудато там (непомню куда), ну дак вот - нада читать не ASCII, а расширенный код - то бишь сначала получай ноль и тутже вызывая readkey читай второй. помоему так раньше было.... но в этом твоем картофеле фри все могет быть :) (типа так: ch:=readkey; if ch=#0 then ch:=readkey if ch=#75 then begin end; Ответ отправлен: 02.09.2002, 18:53 Отправитель: Painbringer Отвечает Ayl
Доброе время суток, max! #75 - это символ "K" (латинское). Стрелка влево (скорее всего, именно ее ты хочешь проверить) определяется с помощью 2-х вызовов функции ReadKey: первый вернет символ #0, второй - символ #75. Т.е. твой фрагмент должен выглядить как-то так: ch := ReadKey; case ch in #0: case ReadKey in #80: {ArrowDown} #75: {ArrowLeft} #77: {ArrowRigth} #72: {ArrowUp} end {case}; #13: {Enter} #27: {Esc} #32: {Space} end {case};
Ответ отправлен: 02.09.2002, 18:11 Отправитель: Ayl Отвечает nix
Приветствую Вас, max! Уже точно не помю про паскаль, но кажется нужно делать так: ch:=readkey; if ch=0 then ср:=readkey; if ch=#75 then{или что-то в ентом роде:-} begin ---- end;}
Ответ отправлен: 03.09.2002, 15:11 Отправитель: nix Отвечает baldr
Приветствую Вас, max! Я так понимаю, что ты хочешь клавишу "стрелка" заюзать? Так вот: такие клавиши имеют расширенный скан-код, который состоит из двух байт, а не из одного. Сперва идет #0, а потом и код клавиши. Делай так: ch:=readkey; case ch of #27: {Escape etc...}; #13: {Enter etc...}; #0: Case readkey of {Если первый байт - #0, то смотрим второй:} #75: {ArrowKey1}; #81: {ArrowKey2}; {и так далее...} End; end; Если надо список всех скан-кодов, то пиши на baldr@pisem.net - вышлю. Ответ отправлен: 02.09.2002, 16:29 Отправитель: baldr Отвечает Sensey
Доброе время суток, max! Как это? Не должно такого быть... Ищи в другом месте глюку. Что делать... Пиши на обычном Паскале. Какая разница-то? А если хошь писать игру, то может и не на Паскале, потому как он для этого не очень...
Ответ отправлен: 03.09.2002, 10:33 Отправитель: Sensey Отвечает Топор
Приветствую Вас, max! Не знаю, в BP этой проблемы вроде не было. Возможно, что у тебя клавиша даёт расширенный скан-код, тогда надо читать буфер клавы второй раз, вторым вызовом readkey (реально жать на клавишу надо по прежнему один раз :о)). То есть: {ch:=readkey; if ch=0 theh ch:=readkey; if ch=#75 then begin ---- end;}
Ответ отправлен: 03.09.2002, 12:50 Отправитель: Топор
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.