Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
3-1146571342
Суслик
2006-05-02 16:02
2006.06.25
Распределенные транзакции в MSSQL Server


2-1149512871
VitV
2006-06-05 17:07
2006.06.25
Не могу найти компоненты TSocket....


2-1149263829
ZV
2006-06-02 19:57
2006.06.25
Start


3-1146119582
vishnia
2006-04-27 10:33
2006.06.25
Использование метода TADOTable.Seek


1-1147859129
Damager
2006-05-17 13:45
2006.06.25
Интерфейс программ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский