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

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

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

> Keypressed в цикле, Как сменить значение keypressed
сообщение
Сообщение #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 Открыть новую тему 
Ответов
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 13.09.2025 3:39
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name