Если данные поступают из DataSet в DataModule, как это выглядит из комментариев к @Roman response , вы можете положиться на события TDataSource.
Если ваш источник данных также находится в модуле данных, вы можете поместить новый источник данных в саму форму (IMO находится там, где он находится).
Затем используйте событие TDataSource.OnDataChange из справки:
Напишите обработчик события OnDataChange , чтобы выполнить определенные действия, когда поле в текущей записи было отредактировано, а приложение перемещается в другое поле или когда текущая запись в связанном наборе данных изменяется. OnDataChange особенно полезен в приложениях, которые должны синхронизировать отображение данных в элементах управления, которые не поддерживают данные . Это событие обычно используется для того, чтобы убедиться, что элемент управления отражает текущие значения полей в наборе данных, потому что оно инициируется всеми изменениями.
Параметр Field равен nil
, когда связанный набор данных перемещается в новую запись или обновляет буфер записи. Поле не равно нулю, когда изменения принадлежат конкретному полю (пользователь или сама программа изменяют его значение).