|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.03.2008, 16:08 | #1 |
Пользователь
Регистрация: 01.03.2008
Сообщений: 27
|
Выход из программы
Подскажите, пожалуйста, как закрыть программу, которая выводит в цикле график на элемента CHART, при нажатии на кнопку EXIT. Нажатие происходит во время вывода графика. Application.ProcessMessages - в цикле есть.
Пробовал: просто Form1.Close SendMessage(Form1. Handle,WM_CLOSE, 0, 0); CanClose:=true; Action:=caFree; Как закрыть принудительно прогу????? |
14.03.2008, 16:22 | #2 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Попробуй так: Application.Terminate;
Ну или на самый худой конец halt; Последний раз редактировалось Kostia; 14.03.2008 в 16:41. |
14.03.2008, 16:50 | #3 |
Пользователь
Регистрация: 01.03.2008
Сообщений: 27
|
Halt помогло. Спасибо
|
14.03.2008, 17:04 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Application.Terminate и Halt - это грубо и применимо для аварийных завершений.
Попробуйте так: - внутрь цикла ставите Application.ProcessMessages и осуществляете проверку некой переменной, значение которой и устанавливается при нажатии на вашу кнопку EXIT (переменная, конечно, глобальная). - ну, и в зависимости от значения этой переменной либо продолжаете цикл, либо выходите из него (команда BREAK). Ведь вам, наверняка, не программу закрыть нужно, а цикл прервать? Закрывать-то ее зачем? Последний раз редактировалось mihali4; 14.03.2008 в 17:07. |
14.03.2008, 17:16 | #5 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
mihali4, совсем об этом забыл!
Я делал так: цикл repeat ... until tag=1; по событию procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin tag:=1; end; Tag - это переменная не отвечающая ни за что и программист может использовать ее в своих целях. |
14.03.2008, 18:09 | #6 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
То есть если я для выхода из своих многооконных приложений использовал halt, это являлось грубым нарушением?
|
14.03.2008, 18:24 | #7 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
halt это как reset
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
14.03.2008, 18:29 | #8 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
а надо как
если я не хочу искать первую форму, у меня их штук 10 |
14.03.2008, 18:56 | #9 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Например, каскадное закрывание форм.
Преимущество в том, что у вас происходит нормальная обработка OnClose каждой формы с сохранением (если предусмотрено) каких-то данных и так далее. Представьте себе текстовый редактор, где вы наваяли некий шедевр програмистской мысли, но не выбрали пункт меню "Сохранить", а сделали хальт... То же самое, что просто взять и убить процесс, порожденный запуском программы. |
14.03.2008, 19:12 | #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 |