Ejecuta paso a paso y a ver en qué línea falla, porque el código no parece tener nada incorrecto.
Yo como soy un poco "flojo" hubiera hecho algo así:
Código Delphi
[-]
b := qry_edo_habestatus.value='DES';
BTN1.Enabled:= b;
BTN2.Enabled:= not b;
BTN3.Enabled:= not b;
BTN4.Enabled:= not b;
BTN5.Enabled:= not b;
BTN6.Enabled:= not b;