Для управления поведением визуальных компонентов, работающих с данными используются объекты-посредники – филд-форматы. Для определения содержания отображаемых данных, капшенов, видимости, класса эдит-контрола, действий при сохранении данных и прочей атрибутики интерфейса свойственной приложению, db-контролы обращаются к методам и свойствам филд-форматов. Специфика поведения создается наследованием их классов.
На старте приложения создаются все прототипы – генераторы. Они хранят статическую информацию без контекста (набор данных, поле). Рабочий объект филд-формата отыскивается в списке прототипов по имени поля. То есть, для поля с конкретным именем в любой форме будет работать один и тот же функционал, реализованный в классе филд-формата.
Прототипы создаются конструктором CreateGenerator
и хранятся в списках компонента TssDataBase
, откуда они запрашиваются визуальными контролами по имени поля в методе GetFormat
. Рабочие экземпляры создаются при помощи виртуального метода фидл-формата Duplicate
, в котором кроме создания обеспечивается передача статических данных прототипа в рабочую копию. Создание генераторов в общем случае происходит автоматически, а для специфических полей это задача прикладного программиста.
По области применения филд-форматы делятся на эдит-форматы, датасет-форматы и датасторадж-форматы.
Эдит-форматы обслуживают внешний вид и поведение эдит-контролов, сохранение введенных данных в датасет и проверку допустимости значений.
Датасет-форматы обслуживают отображение заголовочных данных.
Датасторадж-форматы – отображение значений и их сравнение.