Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

Разорвать цикл   Найти похожие ветки 

 
Ray ©   (2006-06-02 20:29) [0]

Когда крутится цикл вычислений, программа до его окончания не реагирует на кнопки, клавиши, вообще ни на что :(
Складывается впечатление, что она висит -- даже экран не обновляется.
Но по окончании цикла и выхода из процедуры все восстанавливается.
А хотелось бы чтобы она хотя бы опрашивала какую-нибудь кнопочку, например Abort.
Как это реализовать?
Хотелось бы увидеть пример.


 
Kolan ©   (2006-06-02 20:35) [1]

Application.ProcessMessages


 
Kolan ©   (2006-06-02 20:36) [2]

Это вставить внутрь цикла...


 
Kolan ©   (2006-06-02 20:43) [3]

Чтобы полностью разъяснить ситуацию скажу почему это происходит. Дело в том что, чтобы твои кнопки нажимались, была реакция на клавиши приложение должно выбирать из очереди и обрабатывать сообщения. Все это происходит в основном потоке. Но так как ты запустил цикл основной поток занят и соотв. не может обработать сообщения.

Вызов
Application.ProcessMessages
Позволяет выбрать и обработать накопившиеся сообшения...


 
Ray ©   (2006-06-02 20:56) [4]

Странно то, что в главной форме это работает замечательно,
но если открываю модально форму и в ней цикл крутится -- кнопка не нажимается :-\


 
Loginov Dmitry ©   (2006-06-02 21:12) [5]

Ray ©   (02.06.06 20:56) [4]
кнопка не нажимается


Странная какая-то у вас кнопка. Не нажимается...

А что она делает?


 
TUser ©   (2006-06-02 21:19) [6]

if CircleCounter mod 100 = 0 then
 Application.ProcessMessages;

+ [2]


 
Ray ©   (2006-06-02 21:32) [7]


> Странная какая-то у вас кнопка. Не нажимается...
> А что она делает?


Да ничего не делает. Просто не нажимается и все.
Даже фокус на нее не ставится.

Хотя, когда эту форму из главной формы вызываешь, все нормально нажимается.


 
Loginov Dmitry ©   (2006-06-02 21:39) [8]

Бывает...


 
Ray ©   (2006-06-02 22:13) [9]

Проблема оказалась в том, что у этой формы почему-то было visible=true.
Теперь все работает, всем спасибо :)

Трабла №2:
как сделать, чтобы форма была всегда поверх остальных окон,пока я ее сам не закрою? Типа как ShowModal?
ShowModal не подходит, т.к. тогда эта форма всё перехватывает, а мне на нее только вывод информации надо делать.


 
Virgo_Style ©   (2006-06-02 22:19) [10]

Ray ©   (02.06.06 22:13) [9]
Проблема оказалась в том, что у этой формы почему-то было visible=true.


??!!!

№2: FormStyle:=fsStayOnTop


 
Kolan ©   (2006-06-02 22:48) [11]


> Проблема оказалась в том, что у этой формы почему-то было
> visible=true.
> Теперь все работает, всем спасибо :)
>

ТАк её не должно быть видно....


 
Ray ©   (2006-06-03 12:59) [12]

Kolan, а ее и не было видно, пока не вызовешь. Но свойство почему-то стояло :-\
Кароч, все заработало, как надо. Всем спасибо! :)



Страницы: 1 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
3-1146659528
mochoni
2006-05-03 16:32
2006.06.25
Занесение файлов в SqlServ


15-1149059299
boriskb
2006-05-31 11:08
2006.06.25
Студенты, вас еще не напрягают?


2-1149608848
Iehbr
2006-06-06 19:47
2006.06.25
Что за глюк???


2-1149598657
XTD
2006-06-06 16:57
2006.06.25
как в листбоксе выделить позиции в списке ?


15-1148645930
syte_ser78
2006-05-26 16:18
2006.06.25
то чего в принципе не нужно, но - прикольно