Форум: "WinAPI";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
ВнизПосылка сообщений в MDI приложении Найти похожие ветки
← →
Oleksiy (2004-05-19 17:48) [0]Подскажите как правильно в mdi приложении послать сообщение всем child-окнам, и как правильно это сообщение обработать в child-окне
← →
Digitman © (2004-05-19 18:10) [1]нафига это делать ? если объекты доч.форм всегда доступны в контексте объекта родформы ?
← →
Oleksiy (2004-05-19 18:30) [2]потому как есть окно настроек, после закрытия которого, необходимо послать всем открытым child-окнам различные сообщения, кому то грид перерисовать, кому то данные обновить
← →
B00mer (2004-05-19 19:10) [3]Перебери в цикле все окна (Application.MainForm.MDIChildren[i])
ну и посылай каждому сообщение.
Сообщение можешь зарегистрировать свое (RegisterWindowMessage) а в своих окнах его обрабатывать.
← →
Oleksiy (2004-05-19 19:23) [4]а можно поподробнее, как зарегистрировать и обрабатывать правильно
← →
NAlexey © (2004-05-20 08:46) [5]>Oleksiy (19.05.04 19:23) [4]
Конечно тема на мой взгляд несовсем WinAPI. Но всеже. Регистрировать необязательно если сообщения рассылаются в рамках "своего" приложения. Достаточно так:const
и в дочерней форме ловишь:
CM_BROADCAST = WM_USER + 1;
...
begin
SendMessage(MDIChildFrm.Handle, CM_BROADCAST, 0 ,0);
...procedure CmBroadCast(var Message: TMessage); message CM_BROADCAST;
Как перебрать дочерние формы тебе уже сказали...
← →
Digitman © (2004-05-20 08:57) [6]
> Oleksiy (19.05.04 18:30) [2]
а зачем сообщения-то ? зачем идти в соседнюю комнату через Америку ?
пусть каждая из твоих доч.форм является прямым или дальним наследником некоего класса TSomeBaseMDIChildClass и имеет один и тот же публичный метод SomePublicMethod(), вызов которого с теми или иными параметрами приводит к обновлению чего-то на этой форме
тогда
with Application.MainForm do
for i := 0 to MDIChildCount - 1 do
begin
TSomeBaseMDIChildClass(MDIChildren[i]).SomePublicMethod(.. SomeParameters);
Application.ProcessMessages; //если нужно
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c