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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2007, 20:26   #1
Иринкаа
Пользователь
 
Регистрация: 11.11.2007
Сообщений: 44
По умолчанию Операторы прерывания

Подскажите, плиз, какие в дельфи операторы прерывания
У меня в проекте при нажатии на кнопку запускается процесс. Хочу, чтобы при нажатии на другую кнопку процесс выполнения прерывался, осуществлялся досрочный выход из всех циклов.
Иринкаа вне форума Ответить с цитированием
Старый 26.11.2007, 20:35   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

гм... ну процесс - как я подозреваю Вы имели ввиду всякие действия в функции. Ну а кто Вам мешает внести глобальную переменную тот же тип Boolean. Т.е. в цикле просто проверяете его значение а после Application.ProcessMessages. Вот и все. А в другой кнопке просто значение этой переменной измените и будет Вам прерывание. Если имеется ввиду запуск дочернего процесса, то тут дело другое. Смотря что за процесс - если окно то сообщения пойдут для корректности, если консоль то оборвать и терминайт подойдет... Если Вы дожидаетесь окончания процесса запущенного то врятли что Вы сможете сделать из свой программы ( родителя ). Уточните вопрос!
BOBAH13 вне форума Ответить с цитированием
Старый 26.11.2007, 21:01   #3
Иринкаа
Пользователь
 
Регистрация: 11.11.2007
Сообщений: 44
По умолчанию

У меня при нажатии на кнопку начинается процесс имитации. Запускаются в том числе циклы для сбора статистики. Выводятся промежуточные р-ты в поля формы, потом подсчитывается статистика.
Я хочу иметь возможность все это прервать. Просто. Чтобы при нажатии на кнопку все остановилось - т.е. произошел выход из процедуры, запушенной первой кнопкой.
Иринкаа вне форума Ответить с цитированием
Старый 26.11.2007, 21:07   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

break;
exit; (Не во всех версиях)
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 26.11.2007, 21:46   #5
Иринкаа
Пользователь
 
Регистрация: 11.11.2007
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
break;
exit; (Не во всех версиях)
если break - при запуске проекта возникает ошибка: (991): BREAK or CONTINUE outside of loop
Как вообще break надо использовать?

exit вообще не воспринимается
Иринкаа вне форума Ответить с цитированием
Старый 26.11.2007, 21:52   #6
Иринкаа
Пользователь
 
Регистрация: 11.11.2007
Сообщений: 44
По умолчанию

еще есть Abort
только не знаю, как его применить
Иринкаа вне форума Ответить с цитированием
Старый 26.11.2007, 22:20   #7
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Цитата:
Сообщение от Иринкаа Посмотреть сообщение
еще есть Abort
только не знаю, как его применить
Аборт ? как смешно написала =) вообще также только в ошибке говорится что брэйк вне цикла .. поставь его в цикл
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 26.11.2007, 22:28   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Break, Exit, Abort, Continue прерывают конкретный цикл for..do, while ..do, а не процесс. Раз Вы его называете процессом, следовательно он идет продолжительное время и скорее всего регулируется Timer. Если это так, то второй кнопкой нужно выключить Timer. Если же все-таки нужно прервать цикл, то в цикле задается условие по которому он прерывается, только это никакой кнопкой не сделаешь. Вообще Вас очень трудно понять, что Вам нужно.
puporev вне форума Ответить с цитированием
Старый 26.11.2007, 23:32   #9
Иринкаа
Пользователь
 
Регистрация: 11.11.2007
Сообщений: 44
По умолчанию

процесс действительно длится некоторое время. Но регулируется он не таймером.

Проблема в том, что главная процедура содержит другие процедуры и далеко не один цикл. И нужно выйти именно из этой процедуры, совсем
Иринкаа вне форума Ответить с цитированием
Старый 27.11.2007, 00:11   #10
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
У меня в проекте при нажатии на кнопку запускается процесс. Хочу, чтобы при нажатии на другую кнопку процесс выполнения прерывался, осуществлялся досрочный выход из всех циклов.
Неужели процесс длится так долго, что нужно его прекращать?
Самое правильное это задать условие при котором процесс долженн завершиться и сверятся в конце каждого цикла.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывания и asm в Си BOBAH13 Общие вопросы C/C++ 7 05.08.2008 15:52
прерывания sergei64_89 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.04.2008 13:37