Главная страница
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.053 c
1-1137868399
sco
2006-01-21 21:33
2006.02.26
Свойства программы в виде дерева


2-1139216457
san6
2006-02-06 12:00
2006.02.26
Как поделить строку


2-1139156692
Glex
2006-02-05 19:24
2006.02.26
Как присвоить TImage другой TImage?


2-1139161894
CMOS
2006-02-05 20:51
2006.02.26
Множества. Написание оптимизированного кода


2-1139569245
Enki
2006-02-10 14:00
2006.02.26
Картинки и текст в одном