比如:label1.caption=((4*6)+(4/8))+(5/7)
要计算表达式((4*6)+(4/8))+(5/7)的值,该怎么写代码呢?
麻烦答案写的详细一点!
真的急需啊!
ScriptControl我知道一点,但是不知道该怎么用
能不能把ScriptControl用法说的详细一点啊?我没有财富值给人家额,但是真的很需要这个答案!
麻烦写的详细点啊!非常感激啊!
这个嘛我其实也不太熟悉,它的方法是我自己琢磨的,不一定准啊。
方法:
*ExecuteStatement(Statement As String)
执行一句或多句Script代码,语言由Language决定。Statement为代码内容,多行用换行符分隔。也可以执行一些方法,但它们要存在于控件内。
*AddCode(Code As String)
将Code中指定的代码存入控件,并执行。Code输入规则如同Statement
Reset()
清除控件内所有的代码和对象,回到初始状态。
*Run(ProcedureName As String, ParamArray Parameters() As Variant)
执行一个过程,该过程要在控件内;ProcedureName为过程名,Parameters() 为参数
*Eval(Expression As String)
返回一个表达式的值,Expression为内容。也可以用来返回一个变量或函数的返回值,但它要在控件内。
AddObject(Name As String, Object As Object, [AddMembers As Boolean = False])
添加一个对象到控件,Name为名称,Object为实际对象,不可为Nothing。添加完后,就可以用ExecuteStatement、AddCode和Eval操控它了。
属性:
Language
设置ExecuteStatement、AddCode和Eval使用的语言,取值为:"JavaScript"、"JScript"、"VBScript"
AllowUI
决定是否允许显示对话框
Timeout
指定ExecuteStatement、AddCode和Eval执行的用时的最大值,以毫秒为单位。若超出该值,当AllowUI为True时弹出对话框,选择是否继续,若不继续则发生Timeout事件;为False时直接中断,并发生Timeout事件。有时也会发生Error事件。若这两个事件都不存在,则发生错误。也可以设置为-1,则不限制时间。
对象:
Modules
模块集合,内部方法和上面所讲的方法作用一样。
所有前面带*的都是模块中的内部方法及属性,它们只作用于该模块。
可以用Add方法添加新模块,语法:
Add(Name As String, [Object])
其中Name指名称
*Procedures
过程集合,里面有所有在该模块里的过程。
事件:
Error()
当在该控件发生错误时发生。
Timeout()
当语句因超时而中断执行时发生。
真的很感谢你哈!!
追答提示你:在模块外也有ExecuteStatement、AddCode、Run、Eval这些方法,它们作用于Global模块(公共模块)。该模块也许在Modules里找不到。
要不要在工程-部件把microsoft Script Control 1.0 前面打勾?
这样子是不是四则混合运算都能进行了?
是的,不打钩好像也能出来
追问真的很感谢你哈!!
本回答被提问者和网友采纳不是的,我没说清楚。
比如一个text控件,在text1中输入((4*6)+(4/8))+(5/7)
然后在text2中显示表达式((4*6)+(4/8))+(5/7)的计算结果
换句话说,我想问,如何把字符串转换成表达式进行计算
不知道你知道VBA不,可以将你的算法通过VBA嫁接到Excell里面。将输入公式字符串交给Excel对象。对象执行公式字符串就得出结果了。http://wenku.baidu.com/view/627a29323968011ca3009149.html
追问真的很感谢你哈!!
追答对你有帮助就行! 互相学习.