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

Вниз

Broadcast() не работает ((. Что я делаю не так?   Найти похожие ветки 

 
Magedon ©   (2012-02-11 17:50) [0]

Доброе время суток.
Есть надобность отправить сообщение своим контролам.

В форме делаю


var
 MsgReadOnly:TMessage;
begin
 ...
 MsgReadOnly.Msg := DI_ReadOnlyStateChanged;
 if dmMain.ReadOnly  then
   MsgReadOnly.WParam := 1
 else
   MsgReadOnly.WParam := 0;
 MsgReadOnly.LParam := LongInt(Self);
 MsgReadOnly.Result := 0;
 Self.Broadcast(MsgReadOnly);
end;


Во фрейме, который я положил на TabSheet главного PageControl-a на этой же форме:


...
procedure DIReadOnlyStateChanged(var Message: TMessage); message DI_ReadOnlyStateChanged;
...
procedure TframeTexts.DIReadOnlyStateChanged(var Message: TMessage);
begin
 ReadOnly := Message.WParam = 1;
end;


Ну и в общем модуле


const
  DI_ReadOnlyStateChanged = WM_User + 100;


И вот не доходит эта мессага до фрейма.
Что я сделал не так?


 
Dimka Maslov ©   (2012-02-11 18:01) [1]

1. Use Broadcast when you want to send the same message to each of the child controls contained within the windowed control. Specify the message to be passed as the value of the Message parameter.

2. Вассал моего вассала - не мой вассал. Контрол моего контрола - не мой контрол.

Раз Фраме лежит на ТабСхеете главного ПагеКонтрола - форме он никто и рассылать ему броадкасты она не обязана.


 
Magedon ©   (2012-02-11 19:01) [2]

Спасибо.
Но как же разослать месагу всем контролам своим?
Самому писать чтоле процедурку, в которой обходить Controls и каждому рекурсивно посылать месагу?

Неужели нет ничего стандартного?


 
Омлет ©   (2012-02-11 19:11) [3]

Пусть фрейм перешлет сообщение своим детям.


 
Dimka Maslov ©   (2012-02-11 19:27) [4]


> Неужели нет ничего стандартного?


нет



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

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

Наверх




Память: 0.47 MB
Время: 0.056 c
15-1335731403
Юрий
2012-04-30 00:30
2013.03.22
С днем рождения ! 30 апреля 2012 понедельник


2-1348073809
123456789igor
2012-09-19 20:56
2013.03.22
цикл в цикле


3-1286090959
shadowrun
2010-10-03 11:29
2013.03.22
Ламер и dbexpmys.dll


15-1339145696
Инокентий
2012-06-08 12:54
2013.03.22
Задача по Excel


2-1332692006
leklerk
2012-03-25 20:13
2013.03.22
Нужно ли явно уничтожать ADODataSet, ADOCommand и т.д.?