Как избежать рецикла событий

Автор Тема: Как избежать рецикла событий  (Прочитано 3700 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Есть Sub  по событию Save, который выполняе ряд манипуляций над объектом, после чего требуется выполнить сохранение объекта и это вызывает процедуру по новой...

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как избежать рецикла событий
« Ответ #1 : 16-03-2015, 13:26:25 »
filat, если в обработке события Save вызывается метод Save, то скорее всего что-то не так в логике приложения.
Тем не менее, обычно есть два события - Before Save и Save. Первое событие возникает перед сохранением. Если такое событие есть, то именно в нем нужно сделать изменение объектов и не вызывать повторно метод сохранения.
« Последнее редактирование: 17-03-2015, 08:41:45 от Виктор Чекалин »

Оффлайн Алексей Романов

  • ADN Club
  • **
  • Сообщений: 87
  • Карма: 20
Re: Как избежать рецикла событий
« Ответ #2 : 17-03-2015, 07:11:07 »
после чего требуется выполнить сохранение объекта и это вызывает процедуру по новой...
Сохранение не требуется, если поступить, как советует Виктор. Но тут есть момент, что процедура может вызываться несколько раз при сохранении зависимых компонентов. Анализируй DocumentObject и Context, чтобы прояснить ситуацию, флаги используй. Тут предметно нужно разговаривать...