Спецификация агрегатов TClientDataSet не добавляется автоматически при создании поля агрегата.

StackOverflow https://stackoverflow.com/questions/22212

  •  09-06-2019
  •  | 
  •  

Вопрос

Мне нужно создать агрегатное поле в TClientDataSet, но, как сказано в документации:

Выберите ОК.Недавно определенное поле агрегата автоматически добавляется в набор данных клиента, а свойство агрегатов автоматически обновляется, чтобы включить соответствующую спецификацию агрегата.

Когда я добавляю новое агрегатное поле, агрегатная спецификация не добавляется в агрегаты TClientDataSet, поэтому я не могу использовать его OnUpdateMethod.

Я также попытался обработать событие OnChange моего нового агрегатного поля, но оно вообще не запускается.

Я делаю что-то неправильно?Я просто хочу иметь агрегированное поле и запускать событие при каждом изменении его значения.

Это сломано на делфи?Потому что то, что указано в документации, не отражает фактическое поведение.

редактировать:@Michal sznajder Я использую Delphi 2007

Это было полезно?

Решение

Я думаю, вы можете запутаться между объектами TAggregate и TAggregateField, и документация Delphi, вероятно, не поможет.

Объекты AFAICT и TAggregateField автоматически «пересчитываются» и могут быть привязаны к элементам управления, поддерживающим данные, например TDBText, но не имеют никаких событий OnUpdate.

С другой стороны, объекты «TAggregate» имеют событие OnUpdate, но не могут быть привязаны к элементам управления, поддерживающим данные.

Это может быть поучительно: http://dn.codegear.com/article/29272

Другие советы

Какая версия Делфи?Я только что попробовал чистое приложение D7, и был добавлен TAggregateField.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top