You are on page 1of 5

Option Explicit Private mdblResult As Double Private mdblSavedNumber As Double Private mstrDot As String Private mstrOp As String Private

mstrDisplay As String Private mblnDecEntered As Boolean Private mblnOpPending As Boolean Private mblnNewEquals As Boolean Private mblnEqualsPressed As Boolean Private mint urr!ey"ndex As "nteger Private Sub #orm$%oad&' (op ) &Screen*+eig,t - +eig,t' . / %e0t ) &Screen*1idt, - 1idt,' . / End Sub Private Sub #orm$!eyDown&!ey ode As "nteger2 S,i0t As "nteger' Dim int"ndex As "nteger

Select ase !ey ode ase vb!eyBac34 int"ndex ) 5 ase vb!eyDelete4 int"ndex ) 6 ase vb!eyEscape4 int"ndex ) / ase vb!ey52 vb!eyNumpad54 int"ndex ) 67

ase vb!ey62 vb!eyNumpad64 int"ndex ) 68 ase vb!ey/2 vb!eyNumpad/4 int"ndex ) 69 ase vb!ey82 vb!eyNumpad84 int"ndex ) 6: ase vb!ey92 vb!eyNumpad94 int"ndex ) 7 ase vb!ey:2 vb!eyNumpad:4 int"ndex ) ; ase vb!ey<2 vb!eyNumpad<4 int"ndex ) 65 ase vb!ey=2 vb!eyNumpad=4 int"ndex ) 8 ase vb!ey72 vb!eyNumpad74 int"ndex ) 9 ase vb!ey;2 vb!eyNumpad;4 int"ndex ) : ase vb!eyDecimal4 int"ndex ) /5 ase vb!eyAdd4 int"ndex ) /6 ase vb!eySubtract4 int"ndex ) 6< ase vb!ey>ultiply4 int"ndex ) 66 ase vb!eyDivide4 int"ndex ) < ase Else4 Exit Sub End Select cmd alc&int"ndex'*Set#ocus cmd alc$ lic3 int"ndex End Sub Private Sub #orm$!eyPress&!eyAscii As "nteger' Dim int"ndex As "nteger

Select ase ,r?&!eyAscii' ase @S@2 @s@4 int"ndex ) = ase @P@2 @p@4 int"ndex ) 6/ ase @R@2 @r@4 int"ndex ) 6= ase @A@2 @x@4 int"ndex ) 66 ase @)@4 int"ndex ) // ase Else4 Exit Sub End Select cmd alc&int"ndex'*Set#ocus cmd alc$ lic3 int"ndex End Sub Private Sub cmd alc$ lic3&"ndex As "nteger' Dim strPressed!ey As String mint urr!ey"ndex ) "ndex

"0 mstrDisplay ) @ERROR@ (,en mstrDisplay ) @@ End "0 strPressed!ey ) cmd alc&"ndex'* aption Select ase strPressed!ey ase @5@2 @6@2 @/@2 @8@2 @9@2 $ @:@2 @<@2 @=@2 @7@2 @;@ "0 mblnOpPending (,en mstrDisplay ) @@ mblnOpPending ) #alse End "0 "0 mblnEqualsPressed (,en mstrDisplay ) @@ mblnEqualsPressed ) #alse End "0 mstrDisplay ) mstrDisplay B strPressed!ey ase @*@ "0 mblnOpPending (,en mstrDisplay ) @@ mblnOpPending ) #alse End "0 "0 mblnEqualsPressed (,en mstrDisplay ) @@ mblnEqualsPressed ) #alse End "0 "0 "nStr&mstrDisplay2 @*@' C 5 (,en Beep Else mstrDisplay ) mstrDisplay B strPressed!ey End "0 ase @D@2 @-@2 @A@2 @.@ mdblResult ) Eal&mstrDisplay' mstrOp ) strPressed!ey mblnOpPending ) (rue mblnDecEntered ) #alse mblnNewEquals ) (rue ase @F@ mdblSavedNumber ) &Eal&mstrDisplay' . 655' G mdblResult mstrDisplay ) #ormat?&mdblSavedNumber' ase @)@ "0 mblnNewEquals (,en mdblSavedNumber ) Eal&mstrDisplay' mblnNewEquals ) #alse

End "0 Select ase mstrOp ase @D@ mdblResult ) mdblResult D mdblSavedNumber ase @-@ mdblResult ) mdblResult - mdblSavedNumber ase @A@ mdblResult ) mdblResult G mdblSavedNumber ase @.@ "0 mdblSavedNumber ) 5 (,en mstrDisplay ) @ERROR@ Else mdblResult ) mdblResult . mdblSavedNumber End "0 ase Else mdblResult ) Eal&mstrDisplay' End Select "0 mstrDisplay HC @ERROR@ (,en mstrDisplay ) #ormat?&mdblResult' End "0 mblnEqualsPressed ) (rue ase @D.-@ "0 mstrDisplay HC @@ (,en "0 %e0t?&mstrDisplay2 6' ) @-@ (,en mstrDisplay ) Rig,t?&mstrDisplay2 /' Else mstrDisplay ) @-@ B mstrDisplay End "0 End "0 ase @Bac3space@ "0 Eal&mstrDisplay' HC 5 (,en mstrDisplay ) %e0t?&mstrDisplay2 %en&mstrDisplay' - 6' mdblResult ) Eal&mstrDisplay' End "0 ase @ E@ mstrDisplay ) @@ ase @ @ mstrDisplay ) @@ mdblResult ) 5 mdblSavedNumber ) 5 ase @6.x@ "0 Eal&mstrDisplay' ) 5 (,en mstrDisplay ) @ERROR@ Else mdblResult ) Eal&mstrDisplay' mdblResult ) 6 . mdblResult

mstrDisplay ) #ormat?&mdblResult' End "0 ase @sqrt@ "0 Eal&mstrDisplay' H 5 (,en mstrDisplay ) @ERROR@ Else mdblResult ) Eal&mstrDisplay' mdblResult ) Sqr&mdblResult' mstrDisplay ) #ormat?&mdblResult' End "0 End Select "0 mstrDisplay ) @@ (,en lblDisplay ) @5*@ Else mstrDot ) ""0&"nStr&mstrDisplay2 @*@' C 52 @@2 @*@' lblDisplay ) mstrDisplay B mstrDot "0 %e0t?&lblDisplay2 6' ) @5@ (,en lblDisplay ) >id?&lblDisplay2 /' End "0 End "0 "0 lblDisplay ) @*@ (,en lblDisplay ) @5*@ End Sub

You might also like