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

> Правила раздела!

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

> Keypressed в цикле, Как сменить значение keypressed
Soxatyi
сообщение 9.10.2005 13:25
Сообщение #1


Гость






Такая проблема. Необходимо вставить паузу в цикл, т.е. если во время выполнения цикла я нажал любую клавишу, то программа останавливается на 2 сек., а потом цикл продолжается. Приведу простой ппример:
program delay_key;
var x:integer;
begin
x:=0;
repeat;
x:=x+1;
writeln(x);
delay(1000);
if keypressed then delay(10000);
until(x=30);
readln;
end.

Здесь такая бага: после одного нажатия клавиши программа дальше всегда вставляет паузу, т.е. сменив значение keypressed на TRUE, она при следующем проходе цикла так и оставляет это значение. Нужно, чтобы от одного нажатия пауза вставлялась один раз. Если я потом опять нажал на кнопку, то пауза опять вставится, и т.д.
По логике, в if..then после длинного delay надо впихнуть что-то вроде keypressed:=FALSE (ибо keypressed суть boolean), но выдается ошибка 122.
Что делать?
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
pasman
сообщение 15.10.2005 17:49
Сообщение #2





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

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


а мона так:

program delay_key;
var x:integer;
kl:char;
begin
x:=0;
kl:=#0;
repeat;
x:=x+1;
writeln(x);
delay(1000);
if keypressed then kl:=readkey;
if kl<>#0 then delay(10000);
until(x=30);
readln;
end.


Сообщение отредактировано: volvo - 15.10.2005 18:54
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Soxatyi   Keypressed в цикле   9.10.2005 13:25
volvo   Ага, прямо сейчас Паскаль даст тебе присвоить функ...   9.10.2005 13:30
Soxatyi   Спасибо огромное. )   9.10.2005 14:38
Romtek   Мне по душе больше такой вариант: uses crt; var x...   9.10.2005 19:43
Guest   Вариант while keypressed do readkey; Невсегда ра...   10.10.2005 17:46
volvo   Guest, приведи пример, КОГДА именно while keypress...   10.10.2005 18:19
Guest   В Делфи это конечно не прокатит, так как данный ме...   10.10.2005 21:11
volvo   Guest, я прекрасно знаю, что это не пойдет в Дельф...   11.10.2005 1:58
Guest   Прошу прощения, что не мог ответить ранее, был в п...   15.10.2005 18:38
volvo   Да твой вариант вообще не компилится на многих ко...   15.10.2005 18:47
pasman   а мона так: program delay_key; var x:integer; ...   15.10.2005 17:49
Guest   Мой вариант компилится только на 16-ти битных комп...   15.10.2005 20:19
volvo   Тему-то, на самом деле, поднимаешь ты. Я могу толь...   15.10.2005 20:56
Guest   Смеяться ты можешь, когда хочешь, лишь была причи...   16.10.2005 16:59
hiv   2Guest: А я тоже смеюсь :D Если считаешь себя прав...   17.10.2005 9:51
Guest   Без комментариев... Если есть, что сказать по де...   17.10.2005 17:34
volvo   Кусаться будешь в другом месте. Тебе уже все сказа...   17.10.2005 19:38


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

 



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