Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
6 / 7 / 0
Регистрация: 13.10.2010
Сообщений: 159

Как отменить начатое выполнение программы

13.01.2011, 20:48. Показов 2275. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья,

Я написал программу, которая выполняется в течение 1-2 минут (там идет полоса загрузки и все такое), если пользователь решит отменить выполнение программы по нажатию кнопки "отмена", какой код нужно прописать в обработчик щелчка?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2011, 20:48
Ответы с готовыми решениями:

Как прервать выполнение программы при некотором условии?
Всем здравствуйте. Вопрос по отладке программ в C++Builder6. void __fastcall TForm1::Button1Click(TObject *Sender) { int k =...

Постепенное выполнение программы/зависание программы при выполнении
Собственно есть вопрос, возможно очень даже глупый, но все же спрошу: почему при выполнении большого кол-ва операций программа повисает, а...

Как отменить начатое выполнение программы
Друзья, Я написал программу, которая выполняется в течение 1-2 минут (там идет полоса загрузки и все такое), если пользователь решит...

9
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 47
13.01.2011, 21:45
если выйти из проги то
C++
1
Form->Close();
Если же перейти на другую форму то
C++
1
2
Form->Hide();
Form2->Show();
1
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
14.01.2011, 07:17
Цитата Сообщение от Programmer_С++ Посмотреть сообщение
какой код нужно прописать в обработчик щелчка?
C++
1
Application->Terminate();
ИМХО
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
14.01.2011, 08:15
Цитата Сообщение от AlexSt Посмотреть сообщение
Application->Terminate();
Скрыто в Close() для главной формы, явный вызов не требуется.
0
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
14.01.2011, 08:35
Цитата Сообщение от taras atavin Посмотреть сообщение
Скрыто в Close() для главной формы, явный вызов не требуется.
Там у него форма с полосой загрузки идет и кнопочкой отмены, врятли она у него главная.
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
14.01.2011, 12:11
"идет полоса загрузки" намекает на присутствие конечного линейного цикла...
если так, то в обработчик кнопки "Cancel" пишем
Code
1
is_cancel=true;
в тело цикла вставляем
Code
1
if(is_cancel)break;
ну и перед запуском цикла естественно не забываем выставить
Code
1
bool is_cancel=false;
0
6 / 7 / 0
Регистрация: 13.10.2010
Сообщений: 159
14.01.2011, 19:20  [ТС]
AlexSt,
taras atavin,
AntonChik,
в общем суть приложения:
На основной форме я нажимаю кнопку "Вывести".
Основная форма скрывается.
Открывается другая форма с полосой загрузки и кнопкой отмена. (при этом программа выполняет вывод текста в Word, процесс длится 1-2 минуты)

Вот мне как раз и нужен код обработчика щелчка по кнопке "Отмена", который должен:
1. Отменить выполнение кода вывода в Word
2. Закрыть вордовское приложение без сохранения документа
3. Вернуть пользователя на основное окно.

2 и 3 пункты - фигня-вопрос. А вот как отменить выполнение уже запущенного кода?
0
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
14.01.2011, 19:47
вывод идет в ворд я не ошибся?, что то непойму у тебя приложение по сути даже не инициализировалось, темболее у теья идет вывод в ворд, OLE??? что то странно приложение запуксается, и у тебя вывод уже, а кто что ввел?

Добавлено через 3 минуты
Цитата Сообщение от Programmer_С++ Посмотреть сообщение
А вот как отменить выполнение уже запущенного кода?
По сути сделать обратные операции(если приложение как то с текстом не корректно отработало), потом кильнуть приложение, если уже так все серьезно
0
6 / 7 / 0
Регистрация: 13.10.2010
Сообщений: 159
14.01.2011, 22:08  [ТС]
Цитата Сообщение от AlexSt Посмотреть сообщение
вывод идет в ворд я не ошибся?, что то непойму у тебя приложение по сути даже не инициализировалось, темболее у теья идет вывод в ворд, OLE??? что то странно приложение запуксается, и у тебя вывод уже, а кто что ввел?

Добавлено через 3 минуты

По сути сделать обратные операции(если приложение как то с текстом не корректно отработало), потом кильнуть приложение, если уже так все серьезно
Вот скрины:
на первом пользователь вбивает исходные данные
на втором начинается процесс соединения с вордом (CreateOleObject) и последующий вывод отчета (20 листов пояснительной записки с текстом, формулами и таблицами)

И вот как раз на втором я и хочу сделать кнопку "Отмена" - и пользователь должен будет вернуться на первую форму, что-бы например скорректировать исходные данные...
Миниатюры
Как отменить начатое выполнение программы   Как отменить начатое выполнение программы  
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
06.02.2011, 22:28
та пофиг, что там вбивает пользователь, и как это выглядит на рисунке - код бы показал .
если цикл - break; , если if - return; , и вообще - ProcessMessage .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2011, 22:28
Помогаю со студенческими работами здесь

Как отменить выполнение функции? Отмена закрытия формы.
У меня возникла проблема, которую не получается нагуглить. Когда пользователь нажимает крестик на форме, он закрывается, а событие...

Как отменить выполнение кода в сервисе, который запущен в отдельном потоке?
Здравствуйте! Есть код класса, наследующего Service public int onStartCommand(Intent intent, int flags, int startId) { tTask = new...

Отменить выполнение метода по таймауту
Умею отменять методы по таймауту. К примеру, есть метод LongRunningMethod. Его выполнение нужно прервать через 1000 мсек. private...

Как в Visual Studio отменить действие не для конкретной страницы, а для всей программы?
Как в visual studio отменить действие не для конкретной страницы, а для всей программы?

Как прервать выполнение программы?
Здравствуйте. Необходимо прервать выполнение программы, но чтобы при этом форма не закрылась. У меня очень много функций и по этому return...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru