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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2013, 20:42   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Как прервать выполнение процедуры

До указанных строчек программа выполняет определенные циклы.
Потом идет проверка

Код:
if a=3 then begin
bs:=MessageDlg('Вы набрали '+inttostr(countr)+' баллов', mtCustom, [mbOK], 0);
if bs=mrOk then begin
PlaySound (PChar(ExtractFilePath (ParamStr(0)) + 'sounds/common/click.wav'), 0, 0);
Form12.Close;
end;
end;
        inc(a);
end;
Вот как мне сделать так, чтобы если а=3 - прервалась процедура и не выполнялось inc(a)

если ставить Exit после форм12.Клоуз то получится, что прерывается только if a=3 then begin, а мне надо именно процедуру вырубить(
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 07.02.2013, 20:52   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Во-первых, в каком обработчике это все записано?
Во-вторых:

Код:
if a=3 then begin
bs:=MessageDlg('Вы набрали '+inttostr(countr)+' баллов', mtCustom, [mbOK], 0);
if bs=mrOk then begin
PlaySound (PChar(ExtractFilePath (ParamStr(0)) + 'sounds/common/click.wav'), 0, 0);
Form12.Close;
end;
Exit;
end;
не подойдет?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 07.02.2013, 20:53   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
а мне надо именно процедуру вырубить
А что это такое? Пока сам не уяснишь какие команды должны выполниться, а какие нет при а=3 никто не поможет.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.02.2013, 21:01   #4
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Все происходит в
procedure TForm12.Image4Click(Sender: TObject); то бишь по клику на картинку.

В массив добавляется случайное число n такое, чтобы оно не повторялось в массиве и происходит ряд действий, которые в принципе не важны для результата.

Если ставить Exit между эндами, то не всплывает Диалоговое окно...


Ув. Аватар, мне нужно, чтобы, в случае, если a=3 не увеличивалось значение "а", а сразу произошел выход из этой формы, так как в противном случае зависнет цикл.
Короче говоря, как только а=3 нужно закрыть форму, да так, чтобы на ней больше не выполнились никакие процедуры)
Интересный проект по изучению английского:
Английский в формате путешествия по США

Последний раз редактировалось Dennis777; 07.02.2013 в 21:06.
Dennis777 вне форума Ответить с цитированием
Старый 07.02.2013, 21:05   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Все происходит в
procedure TForm12.Image4Click(Sender: TObject);
Естественно, у Вас куда Exit ни втыкай - все будет работать неправильно. Так как вы из Form12 закрываете Form12:

Код:
if a=3 then begin
bs:=MessageDlg('Вы набрали '+inttostr(countr)+' баллов', mtCustom, [mbOK], 0);
if bs=mrOk then begin
PlaySound (PChar(ExtractFilePath (ParamStr(0)) + 'sounds/common/click.wav'), 0, 0);
Form12.Close;
end;
end;
Если ставить Exit перед выделенной командой - форма не закроется. Если после - форма закроется и не выполнит Exit. Ставьте вместо
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 07.02.2013, 21:20   #6
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

)) спасибо)
Интересный проект по изучению английского:
Английский в формате путешествия по США

Последний раз редактировалось Dennis777; 07.02.2013 в 21:23.
Dennis777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как прервать выполнение всех функций которые были запущены setTimeout Arassir JavaScript, Ajax 1 20.10.2011 16:20
Прервать выполнение viktorina32 Общие вопросы Delphi 2 27.05.2011 15:24
Как прервать выполнение операции? iskurt Помощь студентам 9 29.03.2010 18:46
Прервать выполнение функции? Как? TwiX Общие вопросы Delphi 9 28.09.2009 16:36
delphi 7, как прервать выполнение программы Altera Софт 3 27.07.2008 15:14