Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > CreateOLEObject('ScriptControl') возврат значений


Автор: teacher032 27.3.2016, 13:47
Подскажите - надо, чтобы скрипт вернул несколько значений, чтобы потом их как-то использовать. 
Вот так вот получаю одно, что последнее присваивалось последний раз чему-то. 
Что именно возвращается, почему это? Как получить несколько значений?

Код

procedure TForm1.Button1Click(Sender: TObject);
var js: OleVariant;
begin
  try
    js := CreateOLEObject('ScriptControl');
    js.TimeOut  := -1;
    js.AllowUI  := True;
    js.Language := 'JScript';
    try
      js.AddCode(Memo1.Text);
      Label1.Caption := js.Eval(Memo1.Text);
    except
      ShowMessage('Script text error!');
    end;
  except
    ShowMessage('ScriptControl is not installed!');
  end;
  js := Unassigned;
end;


Код

a = 15;
b = 20;
for (i = 0; i < 3; i++) {
   a = a + i ;
   b = b + 1;
}


Получаю: 23
т.е. результат последней b = b + 1;
а почему так?
а как получить а?

Автор: Sajtran 28.3.2016, 20:23
например, функцию вызывать из скрипта

js.Func1(...)

а лучше просто COM-объект сделать через WS

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/CreateOLEObject(ScriptControl)-vozvrat-znacheny-id56f7ba62ae2015b61d8b4567#findElement_E7045_56f968adae2015ca4ad58613_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)