Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает метод 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо