powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Посылка сообщения всем окнам
7 сообщений из 7, страница 1 из 1
Посылка сообщения всем окнам
    #32377906
Фотография Miktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Народ!
Делаю следующее:
1. объявляю собственное сообщение:
Код: plaintext
1.
const
  UM_DATACHANGED = WM_USER +  1 ;

2. Потом, при изменении данных пишу:
Код: plaintext
Perform(UM_DATACHANGED,  0 ,  0 );

3. В форме, где надо отловить это сообщение пишу:
Код: plaintext
1.
2.
3.
4.
5.
procedure UmDataChanged(var AMessage: TMessage); message UM_DATACHANGED;
...
procedure TfmOborots.UmDataChanged(var AMessage: TMessage);
begin
  {Переоткрываю данные}
end;

Ну так вот не переоткрывает! Т.е. сообщение отсылается, но не отлавливается в форме :((
Чё делать?
...
Рейтинг: 0 / 0
Посылка сообщения всем окнам
    #32377952
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>В форме, где надо отловить это сообщение

SendMessage(Форма_Где_Надо_Отловить.Handle,UM_DATACHANGED, 0, 0);
...
Рейтинг: 0 / 0
Посылка сообщения всем окнам
    #32377958
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если всем, то

Код: plaintext
1.
for n :=  0  to(Screen.FormCount- 1 )do PostMessage(Screen.Forms[n].Handle, UM_DATACHANGED,  0 ,  0 );
...
Рейтинг: 0 / 0
Посылка сообщения всем окнам
    #32378009
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или
Код: plaintext
Форма_Где_Надо_Отловить.Perform(UM_DATACHANGED,  0 ,  0 );
...
Рейтинг: 0 / 0
Посылка сообщения всем окнам
    #32379652
Фотография Miktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Все верно, работает. Но я где-то прочитал, что команда Perform без конкретного окна - есть широковещательное сообщение становящееся в стандартную очередь сообщений Windows. Т.е. должно отлавливаться всеми открытыми окнами на данный момент. А не отлавливается. Или не так?
...
Рейтинг: 0 / 0
Посылка сообщения всем окнам
    #32379710
Фотография Ray D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сколько я помню, сообщение еще надо зарегистрировать.
Что-то типа RegisterWindowMessage
...
Рейтинг: 0 / 0
Посылка сообщения всем окнам
    #32379796
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Call Perform to bypass the Windows message queue and send a message directly to the control’s window procedure.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Посылка сообщения всем окнам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]