|
Вопрос # 3 763/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Подскажите пожалуйста,что делать если созданное приложение выполняется длительное время и подвисает(т.е.внешне окно становится белым и процесс идет долго),если фокус мыши переносится на любое другое окно. Если же фокус остается на самой форме выполняющегося приложения,то процесс идет намного быстрее и ничего внешне плохого не происходит (и даже ProgressBar двигается) :-))
 |
Вопрос задала: MStar (статус: Посетитель)
Вопрос отправлен: 12 февраля 2010, 12:56
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 13 февраля 2010, 11:58; участников в обсуждении: 3.
|
vlsavkin (статус: 2-ой класс), 12 февраля 2010, 13:33 [#1]:
Могу предположить, что в процессе действий(вычислений) программа перестает обрабатывать системные сообщения, в том числе, связанные и с отрисовкой окна.
Попробуйте вставить Application.ProcessMessages в ту часть кода, где производятся основные действия программы.
|
|
IlluminatI (статус: 2-ой класс), 12 февраля 2010, 14:23 [#2]:
а еще лучше - вынесете основную часть кода в отдельный поток (Thread).
|
|
Alexey6522 (статус: 1-ый класс), 13 февраля 2010, 11:58 [#3]:
еще можно попробовать добавить Form1.DoubleBuffered:=True; при создании формы в обработчик OnCreate
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|