Проверил active() формы - работает только при активации окна, а не при любом его обновлении (оно и правильно). Здесь скорее нужно ловить манипуляции с источником данных, прекрыть и executeQuery() и delete(), но это не спортивно

. Вот было бы прекрасно если бы такое поведение кнопки регулировалось каким-нибудь стандартным свойством. Мне кажется в этом будет смысл. На мой взгляд, текущее положение вещей создаёт какую-никакую но всё-таки потенциальная угрозу ошибки, вдруг в каком-нибудь месте системы нет соответствующей проверки в коде.