Вниз
Скачать: CL | DM;

Посылка сообщений в 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
1-1087298589
ol
2004-06-15 15:23
2004.06.27
как сделать динамически изменяемый график с помощью TChart


14-1086757862
Baks
2004-06-09 09:11
2004.06.27
Вопрос на зацепку (скорее на скорость ответа)


1-1087214251
PenguinX
2004-06-14 15:57
2004.06.27
Работа с файлом


3-1086056822
ИМХО
2004-06-01 06:27
2004.06.27
О DBF-файлах


3-1086090911
rvs
2004-06-01 15:55
2004.06.27
Проблема с запросом




   Наверх