Professional Documents
Culture Documents
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