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

Вниз

сообщения в TabSheet   Найти похожие ветки 

 
Alex_KV   (2006-01-20 14:12) [0]

Здравствуйте, Мастера!
Передо мной такая задача:
есть форма, на ней несколько TabSheet"ов,
на которых всякие др. контролы.
Хочу в зависимости от опред. условий
на любом TabSheet"e вкл/выкл контролы (Enable: true/false).
Перебирать все контролы лень.
Есть у TTabSheet метод Broadcast, рассылающий сообщения
дочерним контролам.
Если кто знает какое сообщение нуна для вкл.выкл контролов
или другой способ, подскажите, буду благодарен!


 
Johnmen ©   (2006-01-20 14:18) [1]

Стандартное решение - использовать TActionList.


 
Ega23 ©   (2006-01-20 14:18) [2]


With TTabSheet do
for i:=0 to ControlCount-1 do
 TControl(Controls[i]).Enabled:=not TControl(Controls[i]).Enabled;



 
begin...end ©   (2006-01-20 14:25) [3]

> Alex_KV   (20.01.06 14:12)

> Хочу в зависимости от опред. условий
> на любом TabSheet"e вкл/выкл контролы (Enable: true/false).
> Перебирать все контролы лень.

TTabSheet.Enabled ?


 
eugie   (2006-01-26 05:45) [4]

Не помню, насколько давно, но в FAQ этого сайта был пример для изменения свойств дочерних объектов, реализованный через PPropInfo, работает достаточно  хорошо.
Короче, можно, например так изменить свойства ReadOnly для всех контролов, помещенных на форму:

Procedure SetReadOnly(Send:TForm; ROnly:Boolean);
Var i:Integer;
   f:Integer;
   PropInfo: PPropInfo;
Begin
 If ROnly=True Then
    f:=1
 Else
    f:=0;

 With Send Do
 Begin
    For i:=0 to Send.ComponentCount-1 Do
    Begin

       If Send.Components[i].Tag = 0 Then
       Begin

         if not (Send.Components[i].ClassInfo=nil) then
         begin
           PropInfo:= GetPropInfo(Send.Components[i].ClassInfo, "ReadOnly");
           if PropInfo <> nil then
           begin
             case PropInfo^.PropType^.Kind of
               tkEnumeration :  SetOrdProp(Send.Components[i],PropInfo,f);
             end; // case
           end;
         end;
       End;

    End;
 End;
End;
В твоем случае - замени "ReadOnly" на "Enabled".



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

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

Наверх




Память: 0.48 MB
Время: 0.042 c
4-1133792051
MAXHo
2005-12-05 17:14
2006.02.26
Как скрыть программу в диспетчере задачь? WindowsXP


2-1139435290
**Сергей**
2006-02-09 00:48
2006.02.26
Выделенная папка


1-1138169327
dreamse
2006-01-25 09:08
2006.02.26
Цикл между двумя датами


15-1139144464
Дмитрий_177
2006-02-05 16:01
2006.02.26
Ресурсы в exe


8-1127169958
TOL!K
2005-09-20 02:45
2006.02.26
2 WAV