Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 034
от 05.09.2002, 16:20

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 57
Отправлено ответов: 156
Активность: 273.6 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Painbringer
Статус: Профессиональный
Общий рейтинг: 163.46
URL: Музычка, стишки и прочая дрянь
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 119.55
[Подробней >>]
nix
Статус: Опытный
Общий рейтинг: 111.92
[Подробней >>]
 
baldr
Статус: Профессиональный
Общий рейтинг: 117.26
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 129.3
URL: Страничка рассылки Паскаля...
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Топор
Статус: Профессиональный
Общий рейтинг: 117.79
URL: Хорошая Русская Металлическая команда
Телефон: (8462)500298
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 55. Здравствуйте.Я недавно достал в интнрнете бесплатно распространяемую версию FREE PASCAL.Но вот пробл... (ответов: 6)

Вопросов: 1, ответов: 6


 Вопрос № 55

Здравствуйте.Я недавно достал в интнрнете бесплатно распространяемую версию FREE PASCAL.Но вот проблема,
захотелось написать игрушку,а в графическом режиме
не осуществляеться доступ до клавиш.
Тоесть
{ch:=readkey;
if ch=#75 then
begin
----
end;}
Неработает
Подскажите что делать.



Вопрос отправлен: 02.09.2002, 16:17
Отправитель: max

[Следующий вопрос >>] [Список вопросов]

Отвечает Painbringer

Здравствуйте, 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.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (31)
Perl (9)
Delphi (15)
Pascal (25)
Basic / VBA (10)
Java / JavaScript (12)
PHP (9)
MySQL / MSSQL (10)
Пользователю
Windows 95/98/Me (41)
Windows NT/2000/XP (28)
"Железо" (37)
Поиск информации (13)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (16)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (8)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное