IMetabaseDialog.FolderFilters

Синтаксис Fore

FolderFilters: IMetabaseDialogFilters;

Синтаксис Fore.NET

FolderFilters: IPrognoz.Platform.Interop.ExtCtrls.IMetabaseDialogFilters;

Описание

Свойство FolderFilters возвращает коллекцию фильтров, используемых для определения объектов-папок в диалоге.

Комментарии

Фильтры данной коллекции позволяют определить, какие объекты будут считаться папками. В открытом диалоге можно просмотреть содержимое объекта-папки и выбрать дочерние объекты.

По умолчанию фильтр объектов-папок не установлен, при этом в диалоге можно просматривать содержимое всех объектов-контейнеров, и объектов, являющихся родительскими папками для других объектов (например, содержимое сборок, .NET-сборок).

Содержимое папок фильтруется в соответствии с коллекцией Filters.

Пример Fore

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1» и компонента MetabaseOpenDialog с наименованием «MetabaseOpenDialog1».

    Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
    Var
        Filters, FolderFilters: IMetabaseDialogFilters;
        Filter: IMetabaseDialogFilter;
    Begin
        Filters := MetabaseOpenDialog1.Filters;
        FolderFilters := MetabaseOpenDialog1.FolderFilters;
        //Создание нового фильтра для определения доступных в диалоге объектов
        //В фильтр включены формы, модули, сборки платформы
        Filter := New MetabaseDialogMetaclassFilter.Create;
        (Filter As IMetabaseDialogMetaclassFilter).ObjectMetaclass := MetabaseObjectMetaclass.FORE_CLASS;
        Filters.AddFilter(Filter);
        //Создание нового фильтра для определения объектов, содержимое которых можно просмотреть
        //В фильтр включены только папки платформы
        Filter := New MetabaseDialogClassFilter.Create;
        (Filter As IMetabaseDialogClassFilter).ObjectClass := MetabaseObjectClass.KE_CLASS_FOLDER;
        FolderFilters.AddFilter(Filter);
        MetabaseOpenDialogNet1.Execute(Self);
    End Sub;

При нажатии на кнопку для диалога «MetabaseOpenDialog1» будут определены два фильтра:

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

Пример Fore.NET

Для выполнения примера предполагается наличие .NET-формы, расположенной на ней кнопки с наименованием «Button1» и компонента MetabaseOpenDialogNet с наименованием «MetabaseOpenDialogNet1».

    Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
    Var
        Filters, FolderFilters: IMetabaseDialogFilters;
        Filter: IMetabaseDialogFilter;
    Begin
        Filters := MetabaseOpenDialogNet1.Filters;
        FolderFilters := MetabaseOpenDialogNet1.FolderFilters;
        //Создание нового фильтра для определения доступных в диалоге объектов
        //В фильтр включены формы, модули, сборки платформы
        Filter := New MetabaseDialogMetaclassFilter();
        (Filter As IMetabaseDialogMetaclassFilter).ObjectMetaclass := MetabaseObjectMetaclass.FORE_CLASS;
        Filters.AddFilter(Filter);
        //Создание нового фильтра для определения объектов, содержимое которых можно просмотреть
        //В фильтр включены только папки платформы
        Filter := New MetabaseDialogClassFilter();
        (Filter As IMetabaseDialogClassFilter).ObjectClass := MetabaseObjectClass.KE_CLASS_FOLDER;
        FolderFilters.AddFilter(Filter);
        MetabaseOpenDialogNet1.Execute(Self);
    End Sub;

При нажатии на кнопку для диалога «MetabaseOpenDialogNet1» будут определены два фильтра:

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

См. также:

IMetabaseDialog