+ -
当前位置:首页 → 问答吧 → VB做高级计算器

VB做高级计算器

时间:2008-04-27

来源:互联网

哪个朋友可以用VB做出只有1个文本框1个按钮的计算器,文本框内输入+,-,*,/,和()的运算,点按钮结果显示在文本框上,会的朋友教下--感激不尽

作者: lml285290661   发布时间: 2008-04-27

可以调用excel实现

'-----------------------------------
Function result(ByVal x As String)
  Dim myobj As Object
  Set myobj = CreateObject("excel.sheet")
  Set myobj = myobj.Application.ActiveWorkbook.ActiveSheet
  myobj.Range("a1").Formula = "= " & x
  result = myobj.Range("a1").Value
  If Err.Number > 0 Then MsgBox Err.Description
  Set myobj = Nothing
End Function
Private Sub Command1_Click()
  Dim x As String
  x = Text1.Text
  Text2 = result(x)
End Sub
Private Sub Form_Load()
  Text1.Text = "312*9345"
End Sub

'在excel20003+vb+winxp下成功

作者: lianxiangpanjin   发布时间: 2008-04-27

可以考虑用Microsoft Script Control

作者: zzyong00   发布时间: 2008-04-27

'添加 Text1

Private Sub Text1_KeyPress(KeyAscii As Integer)
 If KeyAscii = 13 Then Call calc(Text1)
End Sub

Sub calc(tmpstr As String)
  Set sc = CreateObject("ScriptControl")
  sc.Language = "VBScript"
  Text1.Text = sc.Eval(tmpstr)
  Set sc = Nothing
End Sub

作者: cbm666   发布时间: 2008-04-27

Mark.........

作者: Chen8013   发布时间: 2008-04-27

用ScriptControl非常简单,不过如果真要用,还是用专业的数学软件的好。

作者: cqcpl   发布时间: 2008-04-30

在不使用Microsoft Script Control的情况下也自己用栈的算法编程实现,不难的。

作者: RUKYO   发布时间: 2008-04-30

不明LZ在说什么

作者: meiZiNick   发布时间: 2008-05-01

各位高手谁还有更好的方法,只用VB来做,不用其他语言。谢谢大家了

作者: lml285290661   发布时间: 2008-05-03

3楼的方法还不好么?

作者: Chen8013   发布时间: 2008-05-03

晕倒, 为何一个问题为何老是要发N个帖 ?...................

VbScript 你不喜欢, 下面这个你再不能接受的话, 我想你只有去找 彼尔 啦......... 

Option Explicit 
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long 

Private Sub Command1_Click() 
  ExecuteLine "RtnVal = " & Text1.Text 
  ExecuteLine "clipboard.settext RtnVal" 
  Text1.Text = Clipboard.GetText 
End Sub 

Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean 
  ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, fCheckOnly) = 0 
End Function 

作者: cbm666   发布时间: 2008-05-03

这个都差不多的,只要将里面的操作符和操作数以字符串方式分离后就都一样了。
推荐一个示例程序,可以直接用,还有源代码,LZ一定试下。
http://download.csdn.net/detail/txzsp/3781512

作者: txzsp   发布时间: 2011-11-11