INetControlBox.CreateControl

Синтаксис

CreateControl(Type: IForeNETRuntimeType): Boolean;

Параметры

Type - тип, содержащий описание .NET-компонента, который необходимо создать.

Описание

Метод CreateControl создает .NET-компонент, по описанию типа, передаваемому посредством параметра Type и отображает его в компонент NetControlBox.

Пример

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "Button1" и двух компонентов NetControlBox с наименованиями "NetControlBox1" и "NetControlBox2".

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Run: IForeNETRuntime;
    AsmSys: String;
    Asm: IForeNETRuntimeAssembly;
    Type1, Type2: IForeNETRuntimeType;
Begin
    Run := ForeNETAssemblyClass.Runtime;
    AsmSys := "Microsoft.VisualBasic.Compatibility, Version=7.0.5000.0, Culture=Neutral,PublicKeyToken=b03f5f7f11d50a3a";
    Asm := Run.SystemAssembly(AsmSys);
    //Создаем DirListBox в первом NetControlBox
    Type1 := Asm.Type("Microsoft.VisualBasic.Compatibility.VB6.DirListBox");
    NetControlBox1.CreateControl(Type1);
    NetControlBox1.AttachHandler("DoubleClick");
    //Создаем FileListBox во втором NetControlBox
    Type2 := Asm.Type("Microsoft.VisualBasic.Compatibility.VB6.FileListBox");
    NetControlBox2.CreateControl(Type2);
End Sub Button1OnClick;

Sub NetControlBox1OnEvent(Sender: Object; Args: INetControlBoxEventArgs);
Var
    Run: IForeNETRuntime;
    AsmSys: IForeNETRuntimeAssembly;
    Instance1, Instance2: IForeNETRuntimeObjectInstance;
    Type1, Type2: IForeNETRuntimeType;
    Binding: IForeNETRuntimeMethodBinding;
    Method: IForeNETRuntimeMethod;
    Args1: IForeNETRuntimeMethodArgs;
    s: String;
Begin
    If Args.EventName = "DoubleClick" Then
        //Получаем путь, выбранный в DirListBox
        Run := ForeNETAssemblyClass.Runtime;
        Instance1 := NetControlBox1.Control;
        Type1 := Instance1.GetType;
        Method := Type1.Method("get_Path");
        s := Run.ObjectToVariant(Method.Invoke(Instance1));
        //Устанавливаем путь в FileListBox для просмотра файлов в данной папке
        //Библиотека для работы с типами данных
        AsmSys := Run.SystemAssembly("mscorlib, PublicKeyToken=b77a5c561934e089");
        Instance2 := NetControlBox2.Control;
        Type2 := Instance2.GetType;
        Binding := Type2.Assembly.Runtime.CreateBinding(1);
        Binding.Types.Item(0) := AsmSys.Type("System.String");
        Method := Type2.Method("set_Path", Binding);
        Args1 := Method.CreateArgs;
        Args1.Value(0) := s;
        Method.Invoke(Instance2, Args1);
    End If;
End Sub NetControlBox1OnEvent;

После выполнения примера при нажатии на кнопку в компонентах "NetControlBox1" и "NetControlBox2" будут созданы .NET-компоненты "DirListBox" и "FileListBox", используемые для выбора папки на диске и просмотра содержимого папки, соответственно. Для компонента "DirListBox" будет подключено отслеживание события "DoubleClick". При обработке данного события для компонента "FileListBox" будет устанавливаться путь, выбранный в компоненте "DirListBox".

См. также:

INetControlBox