-
sann-x © (14.01.10 12:48) [0]Есть поток (класс TThread). В нем будет выполняться VBScript (TScriptControl). Я хочу сделать видимым в скрипте массив, объявленный в потоке. Для этого создаю Automation Object. Но как передать в него массив из потока?
-
clickmaker © (14.01.10 13:35) [1]function Run(const ProcedureName: WideString; var Parameters: PSafeArray): OleVariant; ?
-
sann-x © (14.01.10 13:50) [2]Дело в том, что я хочу сделать доступ в скрипте к различным данным из потока через объект. Этот объект хочу внедрить в скрипт, чтобы можно было так:
dim v
v = MyObject.Vars("var1")
v = v * 2
MyObject.Vars("var1") = v
В потоке есть массив из записей:
type
TVar = record
Name: string;
Value: string;
end;
TArrayVar = array of TVar;
TMyThread = class (THread)
private
FVasr: TArrayVar;
...
end;
Таким образом, команда в скрипте v = MyObject.Vars("var1") получает значение (TVar.Value) переменной "var1" (TVar.Name). А команда MyObject.Vars("var1") = v устанавливает TVar.Value тому элементу массива, у которого TVar.Name равна "var1". Вот как это сделать? -
Сергей М. © (21.01.10 09:48) [3]> как это сделать?
Преобразуй дин.массив в safe-массив (F1 -> "SafeArrays") и передавай его в свой олей-автообъект через соотв.свойство или метод -
sann-x © (22.01.10 20:54) [4]
> Преобразуй дин.массив в safe-массив (F1 -> "SafeArrays")
> и передавай его в свой олей-автообъект через соотв.свойство
> или метод
Ага, спасибо. Я уже так и делаю.