Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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,238
По умолчанию

при некотором наборе факторов переменная 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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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