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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2008, 16:08   #1
relav_
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 27
По умолчанию Выход из программы

Подскажите, пожалуйста, как закрыть программу, которая выводит в цикле график на элемента CHART, при нажатии на кнопку EXIT. Нажатие происходит во время вывода графика. Application.ProcessMessages - в цикле есть.

Пробовал: просто Form1.Close
SendMessage(Form1. Handle,WM_CLOSE, 0, 0);
CanClose:=true;
Action:=caFree;

Как закрыть принудительно прогу?????
relav_ вне форума Ответить с цитированием
Старый 14.03.2008, 16:22   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Попробуй так: Application.Terminate;
Ну или на самый худой конец halt;

Последний раз редактировалось Kostia; 14.03.2008 в 16:41.
Kostia вне форума Ответить с цитированием
Старый 14.03.2008, 16:50   #3
relav_
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 27
По умолчанию

Halt помогло. Спасибо
relav_ вне форума Ответить с цитированием
Старый 14.03.2008, 17:04   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Application.Terminate и Halt - это грубо и применимо для аварийных завершений.
Попробуйте так:
- внутрь цикла ставите Application.ProcessMessages и осуществляете проверку некой переменной, значение которой и устанавливается при нажатии на вашу кнопку EXIT (переменная, конечно, глобальная).
- ну, и в зависимости от значения этой переменной либо продолжаете цикл, либо выходите из него (команда BREAK).
Ведь вам, наверняка, не программу закрыть нужно, а цикл прервать? Закрывать-то ее зачем?

Последний раз редактировалось mihali4; 14.03.2008 в 17:07.
mihali4 вне форума Ответить с цитированием
Старый 14.03.2008, 17:16   #5
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

mihali4, совсем об этом забыл!
Я делал так:
цикл
repeat
...
until tag=1;
по событию
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
tag:=1;
end;

Tag - это переменная не отвечающая ни за что и программист может использовать ее в своих целях.
Kostia вне форума Ответить с цитированием
Старый 14.03.2008, 18:09   #6
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
По умолчанию

То есть если я для выхода из своих многооконных приложений использовал halt, это являлось грубым нарушением?
andrey4623 вне форума Ответить с цитированием
Старый 14.03.2008, 18:24   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

halt это как reset
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 14.03.2008, 18:29   #8
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
По умолчанию

а надо как
если я не хочу искать первую форму, у меня их штук 10
andrey4623 вне форума Ответить с цитированием
Старый 14.03.2008, 18:56   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Например, каскадное закрывание форм.
Преимущество в том, что у вас происходит нормальная обработка OnClose каждой формы с сохранением (если предусмотрено) каких-то данных и так далее.
Представьте себе текстовый редактор, где вы наваяли некий шедевр програмистской мысли, но не выбрали пункт меню "Сохранить", а сделали хальт... То же самое, что просто взять и убить процесс, порожденный запуском программы.
mihali4 вне форума Ответить с цитированием
Старый 14.03.2008, 19:12   #10
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
По умолчанию

можно просто закрыть главную форму
тогда-то ведь все сохраняется
andrey4623 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка и падение (выход) 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