![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не работает метод broadcast [D2, D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
BFG9k © (2004-06-23 17:03:00)Есть родительский элемент AParent:TWinControl, нужно сделать недоступными все его дочерние элементы. Пробую отослать им сообщения следующим образом :
var
Mess : TMessage;
begin
Mess.Msg := WM_ENABLE;
Mess.WParam:=0;
AParent.Broadcast(Mess);
end;
...кое-где Mess.Result=0 кое-где =1 , но результата нет (компоненты доступны).
P.S.: Если сделать просто AParent.Enabled:=false , то элементы станут недоступны , но не визуально (как если бы сделать AParent.Child.Enabled:=false с каждым доченим компонентом) , а нужно именно так.
Игорь Шевченко (2004-06-24 12:56:00) [1]
> 2 Игорь Шевченко: Есть ли директивное ?
Нет. Есть функция EnableWindow
BFG9k (2004-06-24 12:25:00) [2]2 Игорь Шевченко: Есть ли директивное ?
2 clickmaker: Это довольно сложный вариант - у дочерних окон в свою очередь есть свои дочерние окна (дизаблить нужно всю иерархию). Рекурсия не поможет , так как надо будет возвращаться на предыдущий уровень.
Игорь Шевченко (2004-06-23 17:50:00) [3]
> WM_ENABLE
Это уведомляющее сообщение, а не директивное
clickmaker (2004-06-23 17:45:00) [4]Parent.ControlCount
Parent.Controls