Через некоторое время сообщают о том, что кнопка работает неправильно. Я читаю логи и оказывается, что сотрудники постоянно отжимают эту кнопку, когда не надо. Флаг сбрасывается -- и от этого-то и возникают глюки. Я сделал специальную защиту, чтобы кнопку было просто так не отжать. Защита часто срабатывала. Кнопка выглядела отжатой, но флаг не сбрасывался.благодаря защите. Глюки пропали.
Прошло время. Я в другой программе решил сделать такую же систему -- когда нажатая кнопка обозначает включённый флаг. Тут я уже мог проводить тестирование не в проде. И вот тогда-то я и выяснил, что то, что происходило на установке -- было совсем не тем, что я думал.
ОКАЗАЛОСЬ
что нажатие любой другой кнопки в окне вызывает автоматическое отжимание той кнопки, которую я поставил в нажатое состояние. И это отжатие вызывает срабатывание события клика по кнопке, хотя её никто не кликал! Поэтому нажатие любой другой кнопки в окне сбрасывает флаг. То есть, сотрудники вовсе не нажимали кнопку случайно. Они нажимали другие кнопки, но их нажатие провоцировало срабатывание не того обработчика.
Тем не менее, я видел в некоторых программах постоянно нажатые кнопки, которые отображали состояние какого-либо флага. У них ничего не глючит. Значит, я что-то делаю неправильно.