Работа с .NET-объектами среды разработки

Создание .NET-объектов

К .NET-объектам среды разработки относятся: .NET-сборка, .NET-форма и .NET-модуль. Все эти объекты являются объектами репозитория, для их создания необходимо использовать следующие классы объектов:

При создании .NET-форм и .NET-модулей в качестве родительского объекта должна быть указана существующая .NET-сборка. Для предварительной настройки .NET-объектов после их создания реализован ряд методов:

Пример создания .NET-сборки:

Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    Assembly: IMetabaseObject;
    NETAssembly: IForeNETAssembly;
Begin
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_NETASSEMBLY;
    CrInfo.Name := "Новая сборка";
    CrInfo.Id := "NewAssembly";
    CrInfo.Permanent := True;
    CrInfo.Parent := MB.Root;
    Assembly := MB.CreateObject(CrInfo).Bind;
    NETAssembly := Assembly As IForeNETAssembly;
    NETAssembly.InitAssembly;

Пример создания .NET-формы:

Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
Begin
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_NETFORM;
    CrInfo.Name := "Новая форма";
    CrInfo.Id := "NewForm";
    CrInfo.Permanent := True;
    CrInfo.Parent := MB.ItemById("NewAssembly");
    MB.CreateObject(CrInfo);

Пример создания .NET-модуля:

Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
Begin
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_NETMODULE;
    CrInfo.Name := "Новый модуль";
    CrInfo.Id := "NewModule";
    CrInfo.Permanent := True;
    CrInfo.Parent := MB.ItemById("NewAssembly");
    MB.CreateObject(CrInfo);

Управление .NET-сборками и .NET-формами

После создания и настройки необходимых .NET-объектов в них осуществляется реализация пользовательских приложений. Для написания кода используется язык Fore.NET. Для использования .NET-объектов в обычных Fore формах/модулях в данной сборки реализованы специальные интерфейсы. Более подробное описание смотрите в разделе Использование Fore.NET в Fore.

Для обычного запуска .NET-сборок/форм из кода на Fore реализован ряд методов:

Пример запуска .NET-сборки из кода на Fore:

Var
    MB: IMetabase;
    NETAssembly: IForeNETAssembly;
Begin
    MB := MetabaseClass.Active;
    NETAssembly := MB.ItemById("NewAssembly").Bind As IForeNETAssembly;
    NETAssembly.Run;

Пример запуска .NET-формы из кода на Fore:

Var
    MB: IMetabase;
    Run: IForeNETRuntime;
    Asm: IForeNETRuntimeAssembly;
    RuntimeForm: IForeNETRuntimeForm;
Begin
    MB := MetabaseClass.Active;
    Run := ForeNETAssemblyClass.Runtime;
    Asm := Run.Assembly(MB.ItemById("NewAssembly").Bind As IForeNETAssembly);
    RuntimeForm := Asm.Form("NewAssembly.NewForm");
    RuntimeForm.Show;

См.также:

Введение