Este es un tipico caso de herencia.. donde todos tus forms tienen que hacer lo mismo..
Podrias hacer algo asi:
Código Delphi
[-]
unit UBaseForm;
interface
uses
Forms,
Controls;
type
TBaseForm = class(TForm)
public
procedure ToggleControls(const IsEnabled: Boolean); overload; virtual;
procedure ToggleControls(const IsEnabled: Boolean; const ControlClass: TControlClass); overload; virtual;
end;
implementation
procedure TBaseForm.ToggleControls(const IsEnabled: Boolean);
var
I: Integer;
begin
for I := 0 to ControlCount - 1 do
Controls[i].Enabled := IsEnabled;
end;
procedure TBaseForm.ToggleControls(const IsEnabled: Boolean; const ControlClass: TControlClass);
var
I: Integer;
begin
for I := 0 to ControlCount - 1 do
if Controls[i].ClassType = ControlClass then
Controls[i].Enabled := IsEnabled;
end;
Ejemplo de uso:
Código Delphi
[-]
unit Main;
interface
uses
UBaseForm,
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
StdCtrls;
type
TForm1 = class(TBaseForm) Edit1: TEdit;
Memo1: TMemo;
btnDisable: TButton;
btnEnable: TButton;
Button1: TButton;
Edit2: TEdit;
procedure btnDisableClick(Sender: TObject);
procedure btnEnableClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnDisableClick(Sender: TObject);
begin
ToggleControls(False);
btnEnable.Enabled := True;
end;
procedure TForm1.btnEnableClick(Sender: TObject);
begin
ToggleControls(True);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ToggleControls(not Edit1.Enabled, TEdit);
end;
end.