五类按钮代码编写
来源:百度文库 编辑:神马文学网 时间:2024/04/27 21:28:10
五类按钮代码的编写
按钮:清零按钮、等号按钮、数字按钮、计算符号按钮、小数点按钮。
首先声明几个变量:
Option Compare Database ‘这句是程序原本就有的,在这句下面输入下面两句
Dim dblNum1 As Double ‘定义变量来保存第一个参加运算的数值
Dim strOperator As String ‘定义变量来保存运算符号
1、清零按钮
只有一句程序,作用是把窗体上的文本框清零。
Private Sub cmdClear_Click()
txtResult = 0
End Sub
按下这个按钮之后,文本框里的值为0。
2、数字按钮
这一类的按钮共有10个,当按下这类按钮就把代表这个按钮的数字加在文本框现有数字的后面。
Private Sub cmd0_Click()
txtResult = txtResult & 0
End Sub
这是cmd0按钮的事件,其它数字按钮的事件也类似,只需把最后面的0改为相应数字就行了。
3、运算符号按钮
当按下运算符号按钮时,做三件事:
a)把文本框里的数值保存到变量dblNum1中
dblNum1 = Val(txtResult)
b)把代表该按钮的运算符号保存到变量strOperator中
strOperator = "+" ‘这是按下”+”号按钮的语句,其它运算按钮要换成对应的符号
c)把文本框清零,相当于按下清零按钮
txtResult = 0
4、等号按钮
当按下等号按钮时,程序必须判断你想运行什么运算,判断的根据就是保存在变量strOperator中的运算符,运算还要有运算对象,对象的来源一是保存在变量dblnum1中的数值,一是文本框中的数值。判断语句有许多种,比如if语句以及 select case语句,我们在这里采用的是select case语句,if语句在小数点按钮里会用到。
Select 语句的语法:
Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
语法说明:
testexpression 必要参数。任何数值表达式或字符串表达式。
expressionlist-n 如果有 Case 出现,则为必要参数。其形式为 expression,expression To expression,Is comparisonoperator expression的一个或多个组成的分界列表。To 关键字可用来指定一个数值范围。如果使用 To 关键字,则较小的数值要出现在 To 之前。使用 Is 关键字时,则可以配合比较运算符(除 Is 和 Like 之外)来指定一个数值范围。如果没有提供,则 Is 关键字会被自动插入。
statements-n 可选参数。一条或多条语句,当 testexpression 匹配expressionlist-n中的任何部分时执行。
elsestatements 可选参数。一条或多条语句,当 testexpression 不匹配 Case 子句的任何部分时执行。
※更详细的说明请查阅Access帮助
语法已经知道了,那下面就来开始用select case来编写等号按钮事件中的程序:
Private Sub cmdEqual_Click()
‘用strOperator来做为选择条件
Select Case strOperator
‘当strOperator=”+”
Case "+"
‘文本框的值等于变量dblnum1的值加文本框的值。这里我们使用了VAL函数,因为文本框中的值是一个字符串,而变量中的值是双精度数值型,所以先要用val函数把文本框中的值转换为数值型。
txtResult = dblNum1 + Val(txtResult)
‘下面的不做解释了,因为都是一样的语句
Case "-"
txtResult = dblNum1 - Val(txtResult)
Case "*"
txtResult = dblNum1 * Val(txtResult)
Case "/"
txtResult = dblNum1 / Val(txtResult)
End Select
End Sub
这节课我们继续来写小数点按钮的代码写完。(程序中的01至13是行号,为了解释方便而加上去的,在程序里不要加上该行号)。
Private Sub cmdPoin_Click()
01 Dim i As Integer
02 Dim j As String
03 Dim PoinTag As Boolean
04 For i = 1 To Len(txtResult)
05 j = Mid(txtResult, i, 1)
06 If j = "." Then
07 PoinTag = True
08 Exit For
09 End If
10 Next i
11 If PoinTag = False Then
12 txtResult = txtResult & "."
13 End If
End Sub
01-----03定义变量,01定义一个整型变量用来保存循环的次数,02定义一个字符串变量用来保存文本框中的字符,03定义一个布尔变量,用来保存小数点的存在状态,PoinTag=true表示已有小数点,PoinTag=false表示没有小数点。
04-----10是一个for循环,循环体里面嵌套着一个IF判断语句。
04从I=1到文本框txtResult的总字符数为止,步长为1。
05 j=用Mid函数来截取的那一个字符,Mid函数的语法:Mid(字符串或代表字符串的变量,从第几个字符开始,截取几个字符),Mid(txtResult, i, 1)就可以解释为从第i个开始,截取文本框中的1个字符。每次循环i都加1,所以每次截取的字符都不一样,从第1个字符开始,逐个截取文本框中的字符,直到最后一个。
06 如果j=小数点,就
07让变量PoinTag=True
08 退出循环
09 结束If语句
10 下一个i,也就是i=i+1,再返回04行重新开始循环
11 如果变量PoinTag=false,那么
12 文本框txtResult中的文本等于原有的文本尾部再加上小数点
13 结束if 语句
程序思路:
要确定文本框中的字符是否包含小数点,必须一个字符一个字符地跟“.”比较,如果该字符等于“.”,就说明文本框中的字符包含小数点,这时就可以跳出循环了,因为我们的目的已达到。当然,你可以不跳出循环,让它比较完所有字符,程序也不会出错,只是程序运行时间增加了,程序的效率降低了。如果找到小数点,要把这个信息用一个变量来保存起来,因为我们要根据找到或没找到小数点来决定小数点按钮按下去后,文本框里的字符后面是否加小数点。如果找到小数点,就不能再加小数点了,如果没找到,就在后面加一个小数点。因为是否找到小数点只有两种状态:找到或没找到,所以就把保存是否找到小数点的信息的变量定义为布尔型数据,这种数据只有两种值True/False,用中文表示就是:是/否。你也可以定义成字符型或数字型,然后用不同的值来表示是否找到,只要你知道是什么意思就可以了,不过如果只存在两种状态的话,最好用布尔型。
程序思路的第一句话我提到了要一个字符一个字符地跟“.”比较,但文本框里的字符是一串,如何把它们分解成一个一个呢?用Mid函数!Mid函数的语法:
变量=Mid(字符串,从第几个字符开始截取,要截取几个字符)
如:i=Mid(“Hello!”, 5, 1)表示从第5个字符开始截取,要截取1个字符。运行这句程序之后,I就等于o了。程序分析得差不多了,下面注释一下各语句:
Private Sub cmdPoin_Click()
Dim i As Integer ‘定义变量i,让它做为循环变量
Dim j As String ‘定义变量j,让它保存mid函数截取下来的字符
Dim PoinTag As Boolean ‘定义变量PoinTag,让它保存是否找到小数点标志
For i = 1 To Len(txtResult) ‘从1循环到字符长度,注:Len函数返回字符长度
j = Mid(txtResult, i, 1) ‘截取第i个字符赋值给j
If j = "." Then ‘如果j等于小数点
PoinTag = True ‘把找到小数点的信息保存到顶变量pointag中
Exit For ‘跳出循环体,不再循环
End If ‘if语句结束
Next i ‘下一个i
If PoinTag = False Then ‘如果变量PoinTag的值等于false,那么
txtResult = txtResult & "." ‘把小数点加到文本框中的字符后面
End If
End Sub