![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Вот в чем проблема:
После нажания на _кнопку_ пробегает цикл Код:
НО, если несколько раз кликнуть на _кнопку_, пока идет цикл, процедура выполняется много раз. Это очень плохо и этого быть не должно. Выключать _кнопку_ до цикла, и включать после - не помогло. Обнулять событие onClick у _кнопки_, и возвращать исходное - не помогло. Подскажите, может есть еще какие-то способы, либо другие варианты реализации этого самого "просто подождать"? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
![]()
А если так? )
Код:
|
![]() |
![]() |
![]() |
#3 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]() |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
![]()
Там дело в том, что обработчики событий вызываются не моментально в момент нажатия на кнопку - если поток в это время выполняет пользовательский код, событие обработается только после его завершения. Т. е. в общем случае - после выхода из кода обработчика.
Если просто отключить кнопку до цикла и включить после, пропущенные нажатия сработают после завершения кода обработчика, в этот момент кнопка уже включена. А application.processmessages говорит, что нужно обработать все пропущенные события прямо сейчас (в момент, когда кнопка заблокирована). |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как блокировать клаву но мышь должна работать? | Stasensh | Помощь студентам | 2 | 18.06.2010 20:48 |
Как временно отключить формулы? | parsn | Microsoft Office Excel | 2 | 12.01.2010 18:32 |
Как блокировать рекламу плагами FFox'a | AgressiveBehavior | Свободное общение | 1 | 23.09.2009 14:14 |