一个EDIT 我在里面输入 9+8
点确定 如何计算 9+8
谢谢

解决方案 »

  1.   

    procedure TForm1.btn2Click(Sender: TObject);
    begin
      ShowMessage(IntToStr(9+8));
    end;
      

  2.   

    一般分为二个EDIT,再作处理.如EDIT1值为"8",EDIT2值为"9"。计算表达式:StrtoInt(Edit1.text)+StrtoInt(Edit1.text)
      

  3.   

    procedure TForm1.btn2Click(Sender: TObject);
    begin
      //保证正确输入9+8
      ShowMessage(IntToStr(StrToInt(Copy(Edit1.Text,1,1))+StrToInt(Copy(Edit1.Text,3,1))));
    end;
      

  4.   

    首先是一位一位的读取,分析是否数字,如 in [0..9]
    +号就是用case啦,用于+ - * /
      

  5.   

    //其实按照你的方法很不安全的,当心integer越界和输入中文的加号了;
    procedure TForm1.btn2Click(Sender: TObject);
    var
      i:integer;
      m,n:integer;
      Len:integer;
    begin
      i:=Pos('+',Trim(Edit1.Text));
      m:=StrToInt(Copy(Trim(Edit1.Text),1,i-1));
      Len:=Length(Edit1.Text);
      n:=StrToInt(Copy(Trim(Edit1.Text),i,Len+i));
      ShowMessage(IntToStr(m+n));
    end;
      

  6.   

    n那个地方我可能copy处理的不是太对,你自己再看看。
      

  7.   

    rouqing明显没看明白楼主的意思 
      

  8.   

    var
      sInput:string
      i:integer;
    begin
      i:=Pos(sInput,Trim(Edit1.Text));
      ...
      if sInput='+' then
      ...
      if sInput='*' then
      ...
      计算优先级自己判断吧,反正要对整个Edit1.Text表达式进行判断。
      

  9.   


    uses comobj;function expression(const srule:string): variant;
    var
       sc : OleVariant;
    begin
       sc := CreateOleObject('MSScriptControl.ScriptControl.1');
       sc.Language :='JavaScript';
       result:=sc.Eval(srule);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      S1,S2:String;
      N: double;
    begin
      S1:='+';
      S2:='*';
      N:= expression(Edit1.Text);
      showmessage(vartostr(N));
    end;
      

  10.   


    uses comobj;function expression(const srule:string): variant;
    var
       sc : OleVariant;
    begin
       sc := CreateOleObject('MSScriptControl.ScriptControl.1');
       sc.Language :='JavaScript';
       result:=sc.Eval(srule);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      N: double;
    begin
      N:= expression(Edit1.Text);
      showmessage(vartostr(N));
    end;
      

  11.   

    晕死   就用delphi的基本函数就能搞定的  uses StrUtils;procedure TForm1.btn1Click(Sender: TObject);
    var
       a,b,c,p:Integer;
    begin
      p := Pos('+', edt1.Text);  a:=StrToInt(LeftStr(edt1.text, p - 1));
      b:=StrToInt(RightStr(edt1.Text, Length(edt1.Text) - p));
      c:=a+b;
      ShowMessage(IntToStr(c));
    end;
      

  12.   

    普京同志的方法
    输入 9 div 3 出错 
    为什么呢?
      

  13.   

    CreateOleObject('MSScriptControl.ScriptControl.1');解析数学公式的ole对象。
      

  14.   

    可以到网上搜索一些公式函数解析单元或组件,
    这里就有一个http://www.52delphi.com/list.asp?ID=939