Форма может иметь набор специфичных параметров, используемых в основном для фильтрации. Например, список устройств может быть отфильтрован по функциональностям. Для этого в классе формы-субъекта реализуются соответствующие интерфейсные параметры, которые управляют ее поведением. Для интерфейсных параметров реализуется интерфейс пользователя – формы-редакторы. Их мы можем увидеть при настройке формы-субъекта в качестве источника входных параметров для какого-либо настраиваемого объекта. Например, в отчете при настройке шага фильтра «Устройства» мы видим панель «Дополнительно», на которой располагаются контролы всех интерфейсных параметров списка устройств:
Эти параметры являются интерфейсными по сути, но их реализация исполнена с помощью классов и никак не связана с интерфейсами Delphi.
Интерфейсные параметры расширяются наследованием класса TInterfaceParams
от предка, используемого в ближайшем предке формы-субъекта. В пронаследованном классе нужно реализовать новые свойства и их строковую интерпретацию в функции CreateInterfaceParams
. Эти свойства используются в форме-субъекте:
with FormInterfaceParams do begin if RootDevicesOnly then _Filter.Add('RootDevicesOnly', 'IsRootDevice = TRUE');
Для редактирования новых свойств нужно пронаследовать форму-редактор от предка, используемого в ближайшем предке формы-субъекта, добавить элементы управления и сохранение-загрузку значений новых интерфейсных параметров.
Класс формы-редактора возвращается виртуальной функцией формы-субъекта GetFormInterfaceParamsEditorClass
. Класс интерфейсных параметров – функцией GetInterfaceParamsClass
формы-редактора.