求将一文本框内的公式(字符串)转换成可计算的公式的算法
即:在一文本框内输入某公式,可以马上计算出它的值
即:在一文本框内输入某公式,可以马上计算出它的值
解决方案 »
- [菜鸟求助!!!]毕业设计需要开发snmp的网管系统,有人推荐Delphi+SQL server,高手给介绍一下吧。感激不尽!!
- 怎样获得本地网络的传输情况的数值型结果呢>?
- tcp通信,delphi6错'list index out of bounds’
- 如何捕捉DOS命令窗是否关闭?请各位大侠请点,在线等待!!!
- 哪位高手有利用web服务在gis的经验?高分讨论!!!
- 有没有扫描的控键?本人想编一扫描程序,有没有什么好方法?
- ServerSocket 与 ClientSocket 之间这么进行通讯?
- 关于外壳问题
- C——————————————————————> 怎样用ProgressBar显示一个线程的执行过程?
- sql的问题,select * from table where date1>=''01-10-10'' 到底行不行的
- 请问,ADO连接Excel时,如果标题栏有出现合并的单元格怎么查询?
- DELPHI的帮助?
uses
ComObj;
Function Caculate(exp: string): string;
var
script: Variant;
begin
script := CreateOleObject('ScriptControl');
script.Language := 'JavaScript';
Result := script.Eval(Exp);
end;
function TForm1.Eval(expStr: string): string;
var
js:OleVariant;
begin
js:=CreateOleObject('ScriptControl');
js.Language:='JavaScript';
Result:=js.Eval(expStr);
js:=Unassigned;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=self.Eval('123+234+50');
self.Label1.Caption:=s;
end;
表达式计算器,源码.
Function calc(const expression : String):Integer;
Var
sc : OleVariant;
begin
sc := CreateOleObject('MSScriptControl.ScriptControl.1');
sc.Language :='JavaScript';
result := StrtoInt( sc.eval(expression) );
end;
调用如下:
showmessage(inttostr(calc(edit1.text)));
假定edit1.text='(3+4+5)/2';
with adoquery1 do
begin
close;
sql.text := 'select ' + edit1.text +' as field1';
open;
value := fieldbyname('field1').asfloat;
end;