Hola a todos.
Generalmente lo que yo hago cuando tengo que habilitar-deshabilitar controles en un formulario es hacer una función/procedure que recoja todas las condiciones, de manera que no esté todo desperdigado por el código.
Además, a esta función suelo llamarla "botones". Incluye todas las condiciones relativas a botones, opciones de menú, ...
Será invocada desde cualquier lugar del formulario: Al crear el formulario, al cambiar de registro, al cambiar de tab , al...
Un poco de pseudo código
Código Delphi
[-]
procedure TForm.botones;
begin
Boton1.enabled:= ClienteDataset.Active;
opcionmenu1.Enabled:= ClienteDatasetCAMPO1='1' and ClienteDatasetCAMPO2= 35;
etc, etc, etc...
generalmente, a partir de x condiciones las condiciones de más controles suelen ser recurrentes...
boton35.Enabled:= Boton1.Enabled;
etc, etc, etc
end;
Espero que te sirva.
Saludos