常量有:长,宽,高,+,-,*,/,(,)及数字。
通过自由组合组成公式,并合法。几算出结果。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        OleScript : OLEVariant;
    begin
        OleScript := CreateOLEObject('MSScriptControl.ScriptControl');
        OleScript.Language := 'VBScript';
        OleScript.AddCode('Dim Length,Heigh,Width');
        OleScript.AddCode('Length=2');
        OleScript.AddCode('Heigh=3');
        OleScript.AddCode('Width=4');
        OleScript.ExecuteStatement('MsgBox Length*Heigh*Width');
        OleScript := Unassigned;
    end;
      

  2.   

    S := '1*100-19/10 * 100 + (1+2)/5';var
      AQ : TAdoQuery
    ....
      AQ.SQL.Text := 'Select '+S+' As Resu';
      Try
        AQ.Open;
        Result := AQ.FieldByName('Resu').AsFloat;
    .....
      

  3.   

    回复人: ljyt(罗云) ( ) 信誉:94  2005-09-17 22:40:00  得分: 0  
     
     
       楼上的做法有问题,比如:19/10是=1,而不是1.9。要等于1.9就得是19.0/10
      
     
    没错,C里面才会出现这种情况,VB中是可以的
      

  4.   

    用ADO来作纯粹是为了低级的简单的四则混合计算,如果要作详细的计算,引用对象,调用API,调用OLE,甚至作报表,作二次开发,请看http://www.1284.net/