![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 01.03.2008
Сообщений: 27
|
![]()
Подскажите, пожалуйста, как закрыть программу, которая выводит в цикле график на элемента CHART, при нажатии на кнопку EXIT. Нажатие происходит во время вывода графика. Application.ProcessMessages - в цикле есть.
Пробовал: просто Form1.Close SendMessage(Form1. Handle,WM_CLOSE, 0, 0); CanClose:=true; Action:=caFree; Как закрыть принудительно прогу????? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Попробуй так: Application.Terminate;
Ну или на самый худой конец halt; Последний раз редактировалось Kostia; 14.03.2008 в 16:41. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.03.2008
Сообщений: 27
|
![]()
Halt помогло. Спасибо
|
![]() |
![]() |
![]() |
#4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Application.Terminate и Halt - это грубо и применимо для аварийных завершений.
Попробуйте так: - внутрь цикла ставите Application.ProcessMessages и осуществляете проверку некой переменной, значение которой и устанавливается при нажатии на вашу кнопку EXIT (переменная, конечно, глобальная). - ну, и в зависимости от значения этой переменной либо продолжаете цикл, либо выходите из него (команда BREAK). Ведь вам, наверняка, не программу закрыть нужно, а цикл прервать? Закрывать-то ее зачем? Последний раз редактировалось mihali4; 14.03.2008 в 17:07. |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
mihali4, совсем об этом забыл!
Я делал так: цикл repeat ... until tag=1; по событию procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin tag:=1; end; Tag - это переменная не отвечающая ни за что и программист может использовать ее в своих целях. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
![]()
То есть если я для выхода из своих многооконных приложений использовал halt, это являлось грубым нарушением?
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
halt это как reset
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
![]()
а надо как
если я не хочу искать первую форму, у меня их штук 10 |
![]() |
![]() |
![]() |
#9 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Например, каскадное закрывание форм.
Преимущество в том, что у вас происходит нормальная обработка OnClose каждой формы с сохранением (если предусмотрено) каких-то данных и так далее. Представьте себе текстовый редактор, где вы наваяли некий шедевр програмистской мысли, но не выбрали пункт меню "Сохранить", а сделали хальт... То же самое, что просто взять и убить процесс, порожденный запуском программы. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
![]()
можно просто закрыть главную форму
тогда-то ведь все сохраняется |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка и падение (выход) Excel при выполнении сложной программы на VBA | Serge_Bliznykov | Microsoft Office Excel | 6 | 13.08.2008 16:50 |
Выход из цикла | RIO | Помощь студентам | 1 | 21.04.2008 22:55 |
Циклы и выход из них. | alikk | Общие вопросы Delphi | 23 | 13.04.2008 08:44 |
Корректный выход | Constellation | БД в Delphi | 3 | 07.12.2007 15:47 |
Выход из программы | Slash | Общие вопросы Delphi | 8 | 24.03.2007 07:53 |