12. Интерфейсные параметры

Форма может иметь набор специфичных параметров, используемых в основном для фильтрации. Например, список устройств может быть отфильтрован по функциональностям. Для этого в классе формы-субъекта реализуются соответствующие интерфейсные параметры, которые управляют ее поведением. Для интерфейсных параметров реализуется интерфейс пользователя – формы-редакторы. Их мы можем увидеть при настройке формы-субъекта в качестве источника входных параметров для какого-либо настраиваемого объекта. Например, в отчете при настройке шага фильтра «Устройства» мы видим панель «Дополнительно», на которой располагаются контролы всех интерфейсных параметров списка устройств:

Эти параметры являются интерфейсными по сути, но их реализация исполнена с помощью классов и никак не связана с интерфейсами Delphi.

Интерфейсные параметры расширяются наследованием класса TInterfaceParams от предка, используемого в ближайшем предке формы-субъекта. В пронаследованном классе нужно реализовать новые свойства и их строковую интерпретацию в функции CreateInterfaceParams. Эти свойства используются в форме-субъекте:

with FormInterfaceParams do begin
  if RootDevicesOnly then
   _Filter.Add('RootDevicesOnly', 'IsRootDevice = TRUE');
    

Для редактирования новых свойств нужно пронаследовать форму-редактор от предка, используемого в ближайшем предке формы-субъекта, добавить элементы управления и сохранение-загрузку значений новых интерфейсных параметров.

Класс формы-редактора возвращается виртуальной функцией формы-субъекта GetFormInterfaceParamsEditorClass. Класс интерфейсных параметров – функцией GetInterfaceParamsClass формы-редактора.