Ответ 1
Если вы хотите, чтобы вас уведомили, когда что-то изменилось, немного инкапсуляции может быть вашим другом.
Если SomeVariable
- это переменная, а не свойство, измените ее объявление на const
. Это сломает весь код, который пишет на него. Это хорошая вещь; компилятор находит это для вас вместо того, чтобы искать его. Затем создайте процедуру под названием SetSomeVariable
(оставьте ее пустым на данный момент) и измените сломанный код, чтобы вызвать это вместо этого. Когда все будет скомпилировано, измените SomeVariable
на переменную, реализуйте процедуру установки и, если возможно, инкапсулируйте SomeVariable
, чтобы ничто не могло напрямую установить ее значение без вызова новой функции. (Если это свойство, вы можете сделать это гораздо проще, объявив сеттер.)
Как только у вас есть функция, которая устанавливает его значение, вы можете ввести новые эффекты в процесс, например, установить сигнал TSimpleEvent
. (Или, если вы хотите быть более сложным, установите сигнал, если новое значение < > старое значение.)
Вместо того, чтобы спать, введите свой код WaitFor
событие. Запомните reset после этого!