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

Вниз

Продолжение выполнения программы при вызове ShowMessage   Найти похожие ветки 

 
kirill-nevers ©   (2003-08-07 16:37) [0]

Всем привет!
У меня следующий вопрос:
В моей программе есть поток (TThread), который постоянно выполняется в фоновом режиме и время от времени вносит изменения в свойства элементов главной формы. В момент этого изменения я показываю сообщение процедурой ShowMessage. Однако при вызове этой процедуры все приложение останавливается (дополнительный поток тоже) и ждет нажатия кнопки ОК на сообщении. А мне надо сделать чтобы даже когда сообщение на экране, фоновый процесс продолжался и мог вносить изменения в элементы главной формы. Я пробовал создать другой класс, наследующий TThread, засунуть ShowMessage в одну из его процедур, и вызывать эту процедуру, но это ничего не дало. Если кто-нибудь знает как это обойти, буду очень благодарен за совет!


 
panov ©   (2003-08-07 17:04) [1]

ЛУчше бы ты код привел.

Но все же есть подозрение, что используешь SendMesage. А нужно PostMesage.


 
Ученик ©   (2003-08-07 21:24) [2]

ShowMessage - модальное окно, все остальные окна приложения получают состояние WS_DISABLED


 
nikkie ©   (2003-08-07 22:59) [3]

>panov, Ученик
По-моему вы не про то... про SendMessage/PostMessage речи не было, а то, что остальные окна становятся disabled никак не может влиять на то, что поток останавливается.

>kirill-nevers
Не очень понятно что именно ты делаешь... Я так понял, что поток меняет (используя Synchronize?) свойства какого контроля на форме. Срабатывает событие OnChange в котором вызывается ShowMessage. Единственный выход - не вызывать ShowMessage из процедур, которые могут быть вызваны из другого потока посредством Synchronize. Вместо этого пошли какое-нибудь сообщение самому себе с помощью PostMessage и вызывай ShowMessage в обработчике этого сообщения.


 
Evgeny V ©   (2003-08-08 05:31) [4]

nikkie> угу, а Synchronize вызывает SendMessage, так что возможно panov прав. Код нужен, так трудно сказать


 
KA_ ©   (2003-08-08 10:39) [5]

Не используй функцию ShowMessage. Создай свое собственное окно и показывай его методом Show, т.е. как немодальное.



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
3-40264
ViKS
2003-09-24 11:38
2003.10.13
Не выводятся данные в DBlookUpcombo


9-40222
мшыртун
2003-04-11 17:34
2003.10.13
МЕРЛИНУ...ВЫРУЧАЙ!!!


3-40263
LinOS
2003-09-23 06:36
2003.10.13
TDBLookUpListBox не позиционируется при добавлении новой записи


1-40427
CacheMeM
2003-10-03 11:35
2003.10.13
Операторы shl и shr


1-40336
UltraFreak
2003-10-03 12:51
2003.10.13
Нужен HTML-парсер