一个EDIT 我在里面输入 9+8
点确定 如何计算 9+8
谢谢
点确定 如何计算 9+8
谢谢
解决方案 »
- 同样的程序,为什么别人打不开
- 谁有delphi ado连接oracle的ODAC,免费的哦
- 为什么键盘钩子对qq2006没有用?
- 想问一个复制文件的问题
- 关于delphi开发rm播放器的问题,不够再加分!
- 初学都问一个很简单的问题:怎样实现将一个表中的某一字段的内容替换到另一个表中的某一字段。还用ADOQuery行吗?如果不行用什么实现。多
- 下列系统或软件分别是用什么语言编的?
- 请问通过ODBC的system dsn->add所建立的某个DataSource怎样与相应数据库关联?
- 我帮了你们多,你们一个小忙也不帮啊?伤心啊!
- 用TQuery查询的结果可以用另一个TQuery继续深入查询下去吗?
- 程序打包
- report machine 如何做交叉报表
begin
ShowMessage(IntToStr(9+8));
end;
begin
//保证正确输入9+8
ShowMessage(IntToStr(StrToInt(Copy(Edit1.Text,1,1))+StrToInt(Copy(Edit1.Text,3,1))));
end;
+号就是用case啦,用于+ - * /
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;
sInput:string
i:integer;
begin
i:=Pos(sInput,Trim(Edit1.Text));
...
if sInput='+' then
...
if sInput='*' then
...
计算优先级自己判断吧,反正要对整个Edit1.Text表达式进行判断。
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;
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;
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;
输入 9 div 3 出错
为什么呢?
这里就有一个http://www.52delphi.com/list.asp?ID=939