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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

Код:
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 в 14:52.
Lizard123128 вне форума   Ответить с цитированием
Старый 11.08.2015, 16:25   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,674
Репутация: 5617
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестает работать процедура waka2ebawer Общие вопросы Delphi 11 23.06.2013 18:05
Бесконечный цикл при заходе на метку. Как обойти? The Real Kos Assembler 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


04:44.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru