var
a,b,c,d:integer;
str:string;
str:='a*(b-c)';
d:=str中的计算式;
str中的计算式由客户提供,不确定谁有好的方法,谢谢!

解决方案 »

  1.   

    用计算表达式的控件来实现。TParser,很好用,有源码,有Demo。http://vcl.vclxx.org/DELPHI/D32FREE/PARSER10.ZIP
      

  2.   

    IntToStr()
    StrToInt()
    应该能满足的需要吧!
      

  3.   

    uses ComObj ;
    {$R *.dfm}function Eval(expStr: string): string;
    var
        js: OleVariant;
    begin
        js := CreateOleObject('ScriptControl');
        js.Language := 'VBScript';
        Result := js.Eval(expStr);
        js := Unassigned;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
     str:string;
    begin
     str:='2*(4-2)';
      showmessage(Eval(str));
    end;
      

  4.   

    有很多表达式计算控件的,google一下:SparkSoft Expression Parser v3.4 或者FatExpression
      

  5.   

    jinjazz(近身剪*10年磨一贴) ( ) 
    js := CreateOleObject('ScriptControl');这句不明白,是否要uses单元 gzmhero(hihihi) ( )提供的控件可以解决另外拜托高手在看看
    http://community.csdn.net/Expert/topic/3913/3913094.xml?temp=.2242243