Используя сообщения для уведомления TFrames, они должны обновить sh базовых наборов данных - PullRequest
0 голосов
/ 06 января 2020

Я использую TFrames, чтобы разделить различные части формы (визуальные элементы и код) на разные единицы. Например, если моя форма представляет собой счет-фактуру, у меня есть кадр № 1, показывающий клиента, дату счета-фактуры и общую сумму, и кадр № 2, содержащий список продуктов с количеством, названием продукта и суммой.

Всякий раз, когда пользователь это добавление / редактирование / удаление линейки продуктов, я хотел бы, чтобы кадр № 2 уведомил все кадры об изменении. Кадр № 1 затем пересчитает общую сумму.

Я хотел бы использовать Windows сообщения, чтобы сделать это, но я не уверен, что это возможно.

Я определил (в DataModule, который используют все модули):

Const Message_ProductLineUpdate = WM_USER + 101;

Затем в кадре № 1 я определил свой «обработчик»:

procedure RefreshAmount(var Msg:TMessage); message Message_ProductLineUpdate;

А в кадре № 2, когда происходит изменение, я делаю :

PostMessage(Application.Handle,Message_ProductLineUpdate,0,0);

Но RefreshAmount никогда не вызывается. Сначала я попробовал:

PostMessage(Self.Handle,Message_ProductLineUpdate,0,0);

Но я предполагаю, что сообщение «отправляется» исключительно в кадр отправки. Я также предполагаю, что мой обработчик только прослушивает сообщения, отправленные на его собственный дескриптор.

Возможно ли привязать все кадры к сообщениям приложения? Как правильно справиться с этой ситуацией?

...