Lo ideal en estos casos es usar acciones y asociar éstas a los botones. La componente TActionList (donde agregas las acciones) tiene un evento OnUpdate que sirve precisamente para actualizar este tipo de cosas. Ahí revisas las circunstancias actuales del programa y decides si tal o cual acción está o no habilitada. En muchos casos, esto se refleja automáticamente en las componentes conectadas a las acciones (que pueden ser botones, elementos de menúes, etc.), pero puedes aprovechar el mismo evento para actualizar otro tipo de cosas como etiquetas, que reflejen el estado de la aplicación.
Si resulta muy pesado adecuar tu aplicación para el uso de acciones, algo similar sería usar una componente TApplicationEvents y su evento OnIdle. El resultado será muy similar.
// Saludos
|