§3 電卓の制作 VB6 | |
(4) 演算キーの追加 V |
演算の処理
演算キー(+, −, ×, ÷, =)を押したとき、cmdEnzan_Clickプロシージャが実行される。
数字キーを押した後か、数字キー以外を押した後かによって処理を分ける。さらに、数字キー以外を押した後のときは四則キー(+, −, ×, ÷)か等号キー(=)かによって処理を分ける。
数字キーを押した後 、初めての演算キーかどうかに分ける。(図3-4-2参照)
初めての演算キーであればtxtDisplayのデータを変数dData1に記憶し、演算キーのフラグEFlagをTrue(初めてではない)にする。
初めての演算キーでなければtxtDisplayのデータを変数dData2に記憶する。
図3-4-2 |
・プログラムリスト
Private Sub cmdEnzan_Click(Index As Integer)
'数字キーを押した後
If SuuFlag = True Then
If EFlag = False Then 'クリア、=キー以後初めての演算キー
dData1 = Val(txtDisplay.Text) '1つ目数値記憶
EFlag = True
Else
dData2 = Val(txtDisplay.Text) '2つ目数値記憶
End If
If Index <> EQU Then '=以外
Keisan
Enzan = Index '演算種類記憶
dData2 = 0
Else '=のとき
Keisan
EFlag = False
End If
txtDisplay.Text = Trim(Str(dData1)) '結果の表示
演算キーの後、続いて等号キーが押されたときの処理である。
例えば、10 + の後、=キーを押すごとに計算結果が20, 30, … と加算される。
図3-4-3 |
'等号キーを押した後 ElseIf Index = EQU Then If dData2 = 0 Then dData2 = dData1 End If Keisan txtDisplay.Text = Trim(Str(dData1)) EFlag = False
演算キーの後、続いて四則キーが押されたときの処理である。
txtDisplayに表示されているデータを変数dData1に、0を変数dData2に記憶する。
'四則キーを押した後 Else dData1 = Val(txtDisplay.Text) '1つ目数値記憶 dData2 = 0 Enzan = Index '演算種類記憶 EFlag = True End If SuuFlag = False End Sub
このcmdEnzan_Clickプロシージャが呼び出されたとき、すなわち、演算キーが押されたときの演算の種類は、引数Indexに記憶されている番号によって判定する。同時に、1つ前に押された演算キー(等号以外)の種類は、グローバル変数Enzanに記憶させている。
cmdEnzan_Clickプロシージャを次にまとめておく。
Private Sub cmdEnzan_Click(Index As Integer) |
Keisanプロシージャ
四則計算の処理部分である。どの演算をするかは変数Enzanに記憶されている。
Private Sub Keisan() If Enzan = TASU Then '加算+ dData1 = dData1 + dData2 ElseIf Enzan = HIKU Then '減算- dData1 = dData1 - dData2 ElseIf Enzan = KAKERU Then '乗算* dData1 = dData1 * dData2 ElseIf Enzan = WARU Then '除算/ dData1 = dData1 / dData2 End If End Sub
(4) 演算キーの追加 V | |
Copyright © 2001,2002 Hiroshi Masuda |