Добрый день.
Давно я не задавал здесь вопросов и сам ничего не отвечал.
Есть проблема следующего рода:
Стандартный элемент бизнес-процесса "Вопрос пользователю" очень не удобен, когда пользователь должен дать простой ответ "Да/Нет" на какой-то вопрос. В связи с этим сделал отдельное окно с двумя кнопками, которое запускается после очередного шага в процессе. А вот дальше двигается с огромным трудом. Кнопки реагируют на нажатие хорошо если один раз из 10. То есть нажимаем на кнопку "Нет", но ничего не происходит. Нажимаем много раз подряд и каким-то чудом при одном из кликов процесс продвигается вперед в нужно направлении.
На обработчик нажатия кнопок уже каких только процедур не вешал. Сейчас они выглядят примерно вот так:
System.ProcessMessages();
NotifyObject = Self.Attributes('NotifyObject');
if (Assigned(NotifyObject)) {
NotifyObject.Notify(Self, MSG_OK, null);
}
return true;
Пробовал также вместо return true;
ставить Self.ModalResult = wmrCancel;
, и пробовал еще просто Self.Close();
.
Видимо где-то я не до конца понял, как уведомить процесс о том, что нажата та или иная кнопка. Как это правильно нужно делать?
И еще одно замечание, перед появлением этого окна происходит отправка уведомления через почту (может это как-то влияет).