IForeNETRuntimeMethodArgs.ValueObject
Синтаксис
ValueObject(Index: Integer): IForeNETRuntimeObject;
Параметры
Index. Индекс аргумента, для которого необходимо
определить значение.
Описание
Свойство ValueObject определяет
объект, передаваемый в качестве значения указанного аргумента.
Комментарии
В качестве значения данного свойства может быть указан объект, полученный
из какой-либо .NET-сборки, либо объект, являющийся результатом выполнения
какого-либо .NET-метода после преобразования с помощью метода IForeNETRuntime.VariantToObject.
Тип объекта должно быть того типа, с которым осуществлена связь, используемая
при поиске перегруженного метода в свойстве IForeNETRuntimeType.Method.
Пример
Для выполнения примера предполагается наличие формы,
расположенной на ней кнопки с наименованием «Button1» и компонента NetControlBox с наименованием «NetControlBox1».
В компоненте «NetControlBox1» создан объект класса «System.Windows.Forms.RichTextBox».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Run: IForeNETRuntime;
Asm, Asm1, Asm2: IForeNETRuntimeAssembly;
Typ0, Typ1, Typ2: IForeNETRuntimeType;
Typ2Inst: IForeNETRuntimeObjectInstance;
Arg: IForeNETRuntimeMethodArgs;
Bin: IForeNETRuntimeMethodBinding;
Meth: IForeNETRuntimeMethod;
Obj: IForeNETRuntimeObject;
v: Variant;
Begin
Run := ForeNETAssemblyClass.Runtime;
//Создание компонента RichTextBox
Asm := Run.SystemAssembly("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Asm1 := Run.SystemAssembly("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac");
Asm2 := Run.SystemAssembly("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
//Получение координат точки
v := NetControlBox1.Control.InvokeMethod("GetPositionFromCharIndex", 3);
Obj := Run.VariantToObject(v);
Typ0 := Asm1.Type("System.String");
Typ1 := Asm.Type("System.Windows.Forms.IWin32Window");
Typ2 := Asm.Type("System.Windows.Forms.ToolTip");
Typ2Inst := Typ2.CreateInstance;
//Создание связи для поиска перегруженного метода Show
Bin := Run.CreateBinding(3);
Bin.Types.Item(0) := Typ0;
Bin.Types.Item(1) := Typ1;
Bin.Types.Item(2) := Asm2.Type("System.Drawing.Point");
//Получение метода "Show"
Meth := Typ2.Method("Show", Bin);
//Создание аргументов для вывода всплывающей подсказки
Arg := Meth.CreateArgs;
Arg.Value(0) := "Всплывающая подсказка";
Arg.Value(1) := NetControlBox1.Control;
Arg.ValueObject(2) := Obj;
//Выполнение метода "Show"
Meth.Invoke(Typ2Inst, Arg);
End Sub Button1OnClick;
После выполнения примера при нажатии на кнопку будет
получен контекст трех указанных сборок. Данные сборки необходимы, чтобы
организовать вывод всплывающей подсказки в области компонента RichTextBox.
Для получения точки, в которой будет выведена всплывающая подсказка, для
компонента RichTextBox будет выполнен метод «GetPositionFromCharIndex».
Данный метод возвращает объект класса «System.Drawing.Point». Данный объект
будет передан в качестве значения аргумента в метод «Show». После организации
связи для поиска метода и списка аргументов, необходимых для выполнения
метода, будет осуществлен вызов метода «Show».
См. также:
IForeNETRuntimeMethodArgs