找回密码
 加入
搜索
查看: 2662|回复: 4

[AU3基础] 本人写的计算器,遇到问题了,请求帮助

  [复制链接]
发表于 2011-6-18 22:42:06 | 显示全部楼层 |阅读模式
本人不才,所以用的笨笨的办法写的计算器,以下为源码。问题就是运算结果的时候,AU3会把运算符当成普通字符显示出来,而不是运算。比如输入的是1+1,运算的结果就显示1+1.而不是显示2,请求高手帮助
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Dim $XS,$B,$JG
$Form1 = GUICreate("漂亮计算器", 227, 254, 480, 480, 0x80000000, 0x00000008 + 0x00000080)

$Pic1 = GUICtrlCreatePic("", 8, 23, 100, 20)
$Pic2 = GUICtrlCreatePic("", 115, 23, 100, 20)
$Pic3 = GUICtrlCreatePic("", 14, 114, 35, 28);1
$Pic4 = GUICtrlCreatePic("", 95, 114, 35, 28);3
$Pic5 = GUICtrlCreatePic("", 54, 114, 35, 28);2
$Pic6 = GUICtrlCreatePic("", 175, 114, 35, 28);C
$Pic7 = GUICtrlCreatePic("", 135, 114, 35, 28);/
$Pic8 = GUICtrlCreatePic("", 15, 148, 35, 28);4
$Pic9 = GUICtrlCreatePic("", 95, 148, 35, 28);6
$Pic10 = GUICtrlCreatePic("", 55, 148, 35, 28);5
$Pic11 = GUICtrlCreatePic("", 175, 148, 35, 28);撤销
$Pic12 = GUICtrlCreatePic("", 135, 148, 35, 28);*
$Pic13 = GUICtrlCreatePic("", 14, 182, 35, 28);7
$Pic14 = GUICtrlCreatePic("", 95, 182, 35, 28);9
$Pic15 = GUICtrlCreatePic("", 54, 182, 35, 28);8
$Pic16 = GUICtrlCreatePic("", 175, 182, 35, 60);=
$Pic17 = GUICtrlCreatePic("", 135, 182, 35, 28);-
$Pic18 = GUICtrlCreatePic("", 13, 215, 76, 28);0
$Pic19 = GUICtrlCreatePic("", 95, 215, 35, 28);.
$Pic22 = GUICtrlCreatePic("", 135, 215, 35, 28);+
$Pic20 = GUICtrlCreatePic("", 181, 0, 23, 23);最小化
$Pic21 = GUICtrlCreatePic("", 205, 0, 23, 23);关闭
$Pic23 = GUICtrlCreatePic("1.jpg", 0, 0, 227, 254);底图
GUICtrlSetState ( $Pic23 , $GUI_DISABLE );禁用控件
$Edit1 = GUICtrlCreateEdit("", 15, 55, 200, 51);文本框 
$XS=GUICtrlSetData(-1, "0")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        Case $Pic20
                        WinSetState("漂亮计算器", "",@SW_MINIMIZE)
                Case $Pic21
            Exit
                Case $Pic3;1
                        $B=$B&"1"
            GUICtrlSetData($Edit1,$B)
                Case $Pic4;3
                        $B=$B&"3"
            GUICtrlSetData($Edit1,$B)
                Case $Pic5;2
                        $B=$B&"2"
            GUICtrlSetData($Edit1,$B)
                Case $Pic6;C
                    $B=0
                        GUICtrlSetData($Edit1,$B)
                Case $Pic7;/
            $B=$B&"/"
            GUICtrlSetData($Edit1,$B)
                Case $Pic8;4
            $B=$B&"4"
            GUICtrlSetData($Edit1,$B)
                Case $Pic9;6
            $B=$B&"6"
            GUICtrlSetData($Edit1,$B)
                Case $Pic10;5
            $B=$B&"5"
            GUICtrlSetData($Edit1,$B)
                Case $Pic11;撤销
                        Send("{BACKSPACE}")
                        $B=ControlGetText("","",$Edit1) 
                Case $Pic12;*
            $B=$B&"*"
            GUICtrlSetData($Edit1,$B)
                Case $Pic13;7
            $B=$B&"7"
            GUICtrlSetData($Edit1,$B)
                Case $Pic14;9
            $B=$B&"9"
            GUICtrlSetData($Edit1,$B)
                Case $Pic15;8
            $B=$B&"8"
            GUICtrlSetData($Edit1,$B)
                Case $Pic17;-
            $B=$B& "-"
            GUICtrlSetData($Edit1,$B)
                Case $Pic18;0
            $B=$B&"0"
            GUICtrlSetData($Edit1,$B)
                Case $Pic19;.
            $B=$B&"."
            GUICtrlSetData($Edit1,$B)
                Case $Pic22;+
            $B=$B&"+"
            GUICtrlSetData($Edit1,$B)
                Case $Pic16;=
                        MsgBox(0,"",$B)
        EndSwitch
WEnd

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-6-18 22:56:51 | 显示全部楼层
楼主可以试试用逆波兰表达式
发表于 2011-6-18 23:13:47 | 显示全部楼层
回复 1# 白隼

Execute这个函数可以解决
$a = "1+1"
MsgBox(0,0,Execute($a))
 楼主| 发表于 2011-6-19 00:14:05 | 显示全部楼层
哇,谢谢海哥
发表于 2011-6-19 14:44:37 | 显示全部楼层
学习了~~~~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 01:25 , Processed in 0.075682 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表