Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 11.08.2015, 13:50   #1
Lizard123128
Новичок
Джуниор
 
Регистрация: 11.08.2015
Сообщений: 1
По умолчанию программа перестает работать как только запускается бесконечный цикл

Код:
uses GraphABC;
var Left, Right, Enter, GLeft, GRight, GEnter, flag:boolean;
procedure PressEnterMain();
begin 
flag:=true;
end;
procedure PressEnterGame();
begin 
while true do 
begin 
writeln('lol');
end;
end;
procedure pressKey;
begin 
if Enter = true then PressEnterMain;
if Left = true then writeln ('left');
if Right = true then writeln ('Right');
if GEnter = true then PressEnterGame;
if GLeft = true then writeln ('left2');
if GRight = true then writeln ('Right2');
end;
procedure KeyDown(key:integer) ;
begin 
case key of
VK_Enter:if flag = true then GEnter:=true else Enter:=true;
VK_Left:if flag = true then GLeft:=true else Left:=true;
VK_Right:if flag = true then GRight:=true else Right:=true;
end;
PressKey;
end;
procedure KeyUp(key:integer) ;
begin 
case key of
VK_Enter:if flag = true then GEnter:=false else Enter:=false;
VK_Left:if flag = true then GLeft:=false else Left:=false;
VK_Right:if flag = true then GRight:=false else Right:=false;
end;
end;

begin 
onKeyDown:=KeyDown;
onKeyUp:=KeyUp;
end.
обсуждать программу не нужно ) мне бы понять почему программа после нескольких итераций "не отвечает" .

Последний раз редактировалось Stilet; 11.08.2015 в 13:52.
Lizard123128 вне форума Ответить с цитированием
Старый 11.08.2015, 15:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

при некотором наборе факторов переменная GEnter становится true
тогда срабатывает строчка:
Код:
if GEnter = true then PressEnterGame;
и запускается цикл:
Код:
procedure PressEnterGame();
begin 
while true do 
begin 
writeln('lol');
end;
он ничем не прерывается, программа зацикливается.
финита

p.s. программу не проверял, всё сказанное выше - это умозрительные измышления.
я мог и ошибиться


p.p.s.
писать if переменная = true then - это "масло масляное",
выкидывайте знак равно и true!
такая строчка точно то же самое, что и if Переменная then ...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестает работать процедура waka2ebawer Общие вопросы Delphi 11 23.06.2013 17:05
Бесконечный цикл при заходе на метку. Как обойти? The Real Kos Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.09.2012 10:02
проблема с UserForm. при нажатии CommandButton вся программа Exel перестает работать. caught.let Microsoft Office Excel 12 14.03.2012 00:18
ПЕРЕСТАЕТ РАБОТАТЬ МАКРОС Cone Microsoft Office Excel 3 15.08.2010 12:49
ПЕРЕСТАЕТ РАБОТАТЬ СОРТИРОВЩИК Cone Microsoft Office Excel 5 10.08.2010 15:36


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840