各位高手请教了:   
  请问,在一个TEdit中输入一个表达式。如(100-20)*(300-90)*3+5-2这样一个表达式。然后单击一个TButton按钮。便能计算出该表达式的值。请各位高手帮助!

解决方案 »

  1.   

    主要是表达式解析
    http://www.2ccc.com/article.asp?articleid=2370
    可以看下
      

  2.   

    如果是一些简单的算术运算, 可以这样的:uses ComObj;function MathStr(const Str : string) : string;
    var
      vScriptControl : OLEVariant;
    begin
      try
        vScriptControl := CreateOleObject('MSScriptControl.ScriptControl');
        vScriptControl.Language := 'VBScript';
        result := vScriptControl.Eval(Str);
      except
        result := '';
      end;
    end;procedure TForm1.Button1Click(Sender: TObject); //测试
    begin
      Edit1.Text := '(3*6+2)/4';
      ShowMessage(MathStr(Edit1.Text));
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);//再测试一下
    begin
      Edit1.Text := '(3*6+2.88)/4-9^2';  //  ^ 乘方
      ShowMessage(MathStr(Edit1.Text));// -75.78
    end;