la opcion de javier7r es la que yo uso :
Código Delphi
[-]
procedure UnBrick(f : TForm);
var
i, r : integer;
begin
r := f.ComponentCount;
for i := 0 to r - 1 do
Activar(f.Components[i], true);
end;
procedure Brick(f : TForm);
var
i, r : integer;
begin
r := f.ComponentCount;
for i := 0 to r - 1 do
Activar(f.Components[i], false);
end;
procedure Activar(c : TComponent; v : boolean);
var
i, r : integer;
begin
r := c.ComponentCount;
for i := 0 to r - 1 do
Activar(c.Components[i], v);
try
(c as TControl).Enabled := v;
except
end;
try
(c as TMenuItem).Enabled := v;
except
end;
end;