在VB中,使用 ScriptControl 控件可以很方便地计算表达式:1、添加 microsoft script comtrol 1.0控件
2、getgongshivalue = ScriptControl1.Eval("表达式")现在我改用delphi语言编程,但不知如何才能实现这样的功能,特向高手求教,谢谢

解决方案 »

  1.   

    uses ComObj;procedure TForm1.Button1Click(Sender: TObject);
    var
      vScriptControl: OleVariant;
    begin
      vScriptControl := CreateOleObject('ScriptControl');
      vScriptControl.Language := 'VBScript'; //JavaScript
      Caption := vScriptControl.Eval('1+1+2');
    end;
      

  2.   

    非常感谢楼上指点!顺便请教一下,如果公式错误,程序运行会出错,用这个代码时,如何加上除错?就是说,如果公式不正确,就输出false,而不出现错误。
      

  3.   

    http://www.gekko-software.nl/Delphi/Art06.htm
      

  4.   

    除错问题我解决了。
    Function getgongshivalue(gs:String):string;
    begin
      try
        result:=form1.ScriptControl1.Eval(gs);
      except
      end;
    End;现在发现新问题,特向高手求教,上面代码在本地运行效率很高,执行十万次运算,2秒钟不到就结束了,但在其他机器上,20分钟都没完,这是怎么回事?我是把msscript.ocx 控件文件复制到另电脑系统目录下,并执行
    RegSvr32.exe msscript.ocx 进行了控件注册