IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Графика, отрисовка, клавиатура, Как совместить непрерывность отрисовки с управлением с клавиатуры?
Чужак
сообщение 5.01.2008 22:39
Сообщение #1


меркантильный
***

Группа: Пользователи
Сообщений: 161
Пол: Мужской

Репутация: -  6  +


Есть программа, делающа непрерывную отрисовку
с помощью repeat. Если используется структура

....
repeat
....
until Keypressed;


на экраине идет непрерывная отрисовка,
до нажатия любой клавиши.
Но если поменять на

....
repeat
....
until Readkey='q';


Программа выходит по нажатию
клавиши q, но работает только
при нежатии любой другой клавиши(нажал и не отпускаешь).
Как совместить непрерывность отрисовки с управлением с клавиатуры?


--------------------
Смысл откроется тебе. Красками играя
Жизнь предстанет как поток без конца и края.


В этом мире порой разбиваютсямечты
Но чтобы он стал другой Вдруг в него приходишь ТЫ...

После странствий и скитаний настают другие времена.
Старая волна уходит и приходит новая волна.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
andriano
сообщение 5.01.2008 23:57
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


readkey ждет нажатия клавиши, поэтому работа программы приостанавливается.
Проще всего организовать примерно так:

repeat
ch := #0; // забываем предшествующее состояние
if keypressed then begin
ch := readkey;
case ch of
... // обработка нужных клавиш - изменение состояния
end; //case
end;
DrawScreen; // отрисовка нового состояния с учетом нажатых клавиш и прошедшего времени
until (ch = 'q') or (ch = 'Q'); // заботимся, чтобы работа программы не зависела от состояния Caps Lock



Сообщение отредактировано: andriano - 6.01.2008 0:03
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 17.06.2024 11:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"