![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выход из приложения
Vetal73 © (2008-03-20 10:29:00)после компиляции при запуске не могу закрыть окно пока алгоритм до конца не отработает. Что сделать?
ЦУП (2008-03-20 19:57:00) [1]
> vetal73 (20.03.08 14:34) [3]
> Application.ProcessMessages уже вставил, окно можно свернуть,
> но закрыть пока не закончится обработка нажатия button
> не получается.
Стандартное решение:
В теле цикла периодически(!) выполняется Application.ProcessMessages. В обработчике нажатия кнопки устанавливается boolean-флаг. В теле цикла этот флаг проверяется для прерывания цикла.
Palladin (2008-03-20 18:13:00) [2]только не вызывать слижком уж часто... а то весь цинус алгоритма сломается из-за года обработки :)
и вообще очень рекомендую Семеныч (20.03.08 10:44) [2] часть вторая
{RASkov} (2008-03-20 15:01:00) [3]Application.ProcessMessages;
if Application.Terminated then Break;
или цикл так сделать:
while not Application.Terminated and (...) do...
Семеныч (2008-03-20 14:36:00) [4]> vetal73 (20.03.08 14:34) [3]
Код обработки нажатия кнопки - в студию.
vetal73 (2008-03-20 14:34:00) [5]Application.ProcessMessages уже вставил, окно можно свернуть, но закрыть пока не закончится обработка нажатия button не получается.
Семеныч (2008-03-20 10:44:00) [6]> Vetal73 (20.03.08 10:29)
Если алгоритм циклический, вставьте в цикл Application.ProcessMessages.
Если нет, то создайте класс - потомок TThread и вынесите алгоритм в его метод Execute.
Kolan (2008-03-20 10:33:00) [7]Какое окно? Какой алгоритм?