Форум: "Основная";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
ВнизИспользование Microsoft ScriptControl Найти похожие ветки
← →
Дмитрий_А (2006-03-23 09:02) [0]Господа, подскажите, как правильно пользоваться MS Script Control.
На VBScript написана функцияSub OutError(s1, s2)
s2="New Value"
End Sub
Пытаюсь через MS Script Control передать в нее параметры и получить измененные значения.
Передавать получается, а вот получить измененные - нет.
Привожу код ниже:var
Script : IScriptControl;
v : OleVariant;
vaResult : OleVariant;
P : PSafeArray;
begin
Script := CreateOleObject("MSScriptControl.ScriptControl") as IScriptControl;
Script.Language:="VBScript";
Script.UseSafeSubset:=False;
Script.AddCode(Memo1.Lines.Text);
v := VarArrayCreate([0, 1], varVariant);
v[0] := "1111";
v[1] := "2222";
P:= PSafeArray(TVarData(v).VArray);
vaResult := Script.Run("OutError", P);
ShowMessage(v[1]); // Вот тут старое значение "2222", а не "New Value" !!!!
Script := nil;
end;
Подскажите, что делаю не так.
← →
Сергей М. © (2006-03-23 09:17) [1]
> Дмитрий_А
Чем функция-то не угодила ?
procedure TForm1.Button1Click(Sender: TObject);
var
Script : OleVariant;
vaResult : OleVariant;
P : PSafeArray;
begin
Script := CreateOleObject("MSScriptControl.ScriptControl");
Script.Language:="VBScript";
Script.UseSafeSubset:=False;
Script.AddCode(Memo1.Lines.Text);
v := VarArrayCreate([0, 0], varVariant);
v[0] := "1111";
// v[1] := "2222";
P:= PSafeArray(TVarData(v).VArray);
vaResult := Script.Run("OutError", v);
ShowMessage(vaResult);
Script := Null
end;
← →
Сергей М. © (2006-03-23 09:19) [2]Function OutError(s1)
OutError = "OutErrorResult " + s1
End Function
← →
Сергей М. © (2006-03-23 09:19) [3]Вот так еще проще:
procedure TForm1.Button1Click(Sender: TObject);
var
Script, vaResult : OleVariant;
begin
Script := CreateOleObject("MSScriptControl.ScriptControl");
Script.Language:="VBScript";
Script.UseSafeSubset:=False;
Script.AddCode(Memo1.Lines.Text);
vaResult := Script.Run("OutError", "1111");
ShowMessage(vaResult);
Script := Null;
end;
← →
Дмитрий_А (2006-03-23 09:29) [4]2 Сергей М. © (23.03.06 09:19) [3]
Спасибо конечно ...
НО.
Интересует именно входной-выходной параметр процедуры(или функции), а НЕ возвращаемое значение функции.
Вопрос в силе.
← →
Сергей М. © (2006-03-23 09:36) [5]
> Дмитрий_А (23.03.06 09:29) [4]
Не получится.
← →
Дмитрий_А (2006-03-23 10:29) [6]2 Сергей М. © (23.03.06 09:36) [5]
Не получится.
Это точно?
← →
Сергей М. © (2006-03-23 11:04) [7]
> Дмитрий_А (23.03.06 10:29) [6]
Ну это же не VB, где параметры можно передавать по ссылке ..
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.018 c