Weekly Qbasic and Qb64 Lesson Topics
April 20, 2024, 06:56:34 am
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Want to see a specific Tutorial? ASK!
 
  Home Help Search Arcade Links Staff List Login Register  

My calculator,Math useing input,loops, and some choices

Pages: [1] 2 3
  Print  
Author Topic: My calculator,Math useing input,loops, and some choices  (Read 2526 times)
Dustie Bear
Full Member
***
Posts: 115


« on: March 13, 2011, 05:44:38 pm »



Sorry I only copied the sub : im bad!  Embarrassed

heres the whole thing.

I only have the add a  couple other buttons working at the moment

the add button , equal button and move back button and clear button work

its not finished but works enough to get the idea. There are plenty notes to
see what happening

Code:
SCREEN _NEWIMAGE(260, 215, 32)
_SCREENMOVE _MIDDLE

CONST KEY_KP0& = 100256
CONST KEY_KP1& = 100257
CONST KEY_KP2& = 100258
CONST KEY_KP3& = 100259
CONST KEY_KP4& = 100260
CONST KEY_KP5& = 100261
CONST KEY_KP6& = 100262
CONST KEY_KP7& = 100263
CONST KEY_KP8& = 100264
CONST KEY_KP9& = 100265
DIM SHARED TxtPosition

'DIM SHARED Shown AS _INTEGER64     ' Integers are not the cats meow for this program!  LOL
'DIM SHARED Sum AS _INTEGER64
'DIM SHARED Plus AS _INTEGER64
'DIM SHARED Total AS long


COLOR _RGB(0, 0, 0), _RGB(200, 200, 200)
CLS
' Make the Calculater graphics
DrawCalculater
ClckBttns

SLEEP
SYSTEM






SUB ClckBttns
' -------- Box around color box -----------

txtpos = 220
DO 'WHILE _MOUSEINPUT
   rrr = _MOUSEINPUT

   ' --------- Row 1 --- SqrR ------------------------
   IF _MOUSEX > 22 AND _MOUSEX < 65 AND _MOUSEY > 51 AND _MOUSEY < 75 THEN
      IF _MOUSEBUTTON(1) THEN LOCATE 1, 15: PRINT "SqrR            ";
   END IF

   '----------- Row 1 --- Divide -----------------------
   IF _MOUSEX > 76 AND _MOUSEX < 121 AND _MOUSEY > 51 AND _MOUSEY < 75 THEN
      IF _MOUSEBUTTON(1) THEN LOCATE 1, 15: PRINT "%            ";
   END IF

   '----------- Row 1 --- Remove last diget entered per mouse click
   IF _MOUSEX > 132 AND _MOUSEX < 179 AND _MOUSEY > 51 AND _MOUSEY < 75 THEN

      IF _MOUSEBUTTON(1) THEN
         Shonum$ = LEFT$(Shonum$, L - 1)
         L = LEN(Shonum$)
         IF L > 0 THEN
            Shown = VAL(Shonum$): txtpos = txtpos + 8:
            _PRINTSTRING (21, 22), "                            "
            _PRINTSTRING (txtpos, 23), Shonum$
         ELSE
            txtpos = 220: Shonum$ = "": _PRINTSTRING (21, 23), "                            "
         END IF
      END IF
   END IF
   ' -------------Row 1  --- Clears the view window and resets the VARS
   ' --- Clear
   IF _MOUSEX > 190 AND _MOUSEX < 1233 AND _MOUSEY > 51 AND _MOUSEY < 75 THEN
      IF _MOUSEBUTTON(1) THEN Shown = 0: Shonum$ = "": txtpos = 220: _PRINTSTRING (27, 22), "                          "
   END IF

   ' -----------  Row 2 ---- Number 7 -------------
   ' ---  '7'
   IF _MOUSEX > 22 AND _MOUSEX < 65 AND _MOUSEY > 82 AND _MOUSEY < 104 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(7))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' ------------ row 2 --- Number 8 -------------
   IF _MOUSEX > 77 AND _MOUSEX < 122 AND _MOUSEY > 82 AND _MOUSEY < 104 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(8))
         txtpos = txtpos - 8
         Shown = Shown + 8
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' ------------Row 2 --- Number 9 ----------
   IF _MOUSEX > 133 AND _MOUSEX < 177 AND _MOUSEY > 82 AND _MOUSEY < 104 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(9))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' ------------- Row 2 ---Divide ----- Not Set up yet -------
   IF _MOUSEX > 189 AND _MOUSEX < 233 AND _MOUSEY > 82 AND _MOUSEY < 104 THEN
      IF _MOUSEBUTTON(1) THEN LOCATE 1, 15: PRINT "Div          ";
   END IF

   ' ------------- Row 3 ---Number 4 -------------------------
   IF _MOUSEX > 22 AND _MOUSEX < 66 AND _MOUSEY > 111 AND _MOUSEY < 135 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(4))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' ----------- Row 3 ----- Number 5 ------------------------
   IF _MOUSEX > 77 AND _MOUSEX < 121 AND _MOUSEY > 111 AND _MOUSEY < 135 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(5))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' ----------- Row 3 ----- Number 6 --------------------
   IF _MOUSEX > 134 AND _MOUSEX < 178 AND _MOUSEY > 111 AND _MOUSEY < 135 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(6))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF
   ' ------------- Row 3 ------- Multiply not setup yet ----------------------
   ' ---  X
   IF _MOUSEX > 189 AND _MOUSEX < 234 AND _MOUSEY > 111 AND _MOUSEY < 135 THEN
      IF _MOUSEBUTTON(1) THEN LOCATE 1, 15: PRINT "X          ";
   END IF

   ' ------------- Row 4 ----- Number 1 -----------------------
   IF _MOUSEX > 22 AND _MOUSEX < 66 AND _MOUSEY > 142 AND _MOUSEY < 165 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(1))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' -------------Row 4 ------ Number 2 -----------------------
   IF _MOUSEX > 78 AND _MOUSEX < 122 AND _MOUSEY > 142 AND _MOUSEY < 165 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(2))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' ------------Row 4 -------- Number 3 -----------------
   IF _MOUSEX > 133 AND _MOUSEX < 179 AND _MOUSEY > 142 AND _MOUSEY < 165 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shonum$) < 16 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(3))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' ---------- Row 4 -------------Divide not set up yet -----------------------------
   IF _MOUSEX > 190 AND _MOUSEX < 234 AND _MOUSEY > 142 AND _MOUSEY < 165 THEN
      IF _MOUSEBUTTON(1) THEN LOCATE 1, 15: PRINT "-          ";
   END IF

   ' --------- Row 5 ------ Number 0 ----------------------------
   IF _MOUSEX > 22 AND _MOUSEX < 64 AND _MOUSEY > 171 AND _MOUSEY < 195 THEN
      IF _MOUSEBUTTON(1) AND LEN(Shownum$) < 12 THEN
         Shonum$ = Shonum$ + LTRIM$(STR$(0))
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' -------- Row 5 ----------- Decimal point ---------
   IF _MOUSEX > 78 AND _MOUSEX < 122 AND _MOUSEY > 171 AND _MOUSEY < 195 THEN
      IF _MOUSEBUTTON(1) THEN
         Shonum$ = Shonum$ + LTRIM$(".")
         txtpos = 220
         txtpos = txtpos - 8
         Shown = VAL(Shonum$)
         _PRINTSTRING (txtpos, 23), Shonum$
      END IF
   END IF

   ' --------Row 5 ------------ Equals works ------------------------
   IF _MOUSEX > 133 AND _MOUSEX < 179 AND _MOUSEY > 171 AND _MOUSEY < 195 THEN
      IF _MOUSEBUTTON(1) THEN
         _PRINTSTRING (21, 22), "                            "
         Shown = Shown + Sum
         Shownum$ = LTRIM$(STR$(Shown))
         L = LEN(Shonum$)
         L = L * 8
         txtpos = 218 - L
         _PRINTSTRING (txtpos, 23), Shownum$
         Shownum$ = ""
      END IF
   END IF

   '----------- Row 5 -------------------- add works--------------------
   IF _MOUSEX > 190 AND _MOUSEX < 234 AND _MOUSEY > 171 AND _MOUSEY < 195 THEN
      IF _MOUSEBUTTON(1) THEN
         txtpos = 220: _PRINTSTRING (21, 23), "                              "
         Sum = Shown
         Shown = 0
         Shonum$ = ""
      END IF
   END IF

   ' ------------- End Button Routines -----------------------------


   ' the following Seems to stop most of excessive mouse clicks
   _DELAY .02
   '------ Clear the mouse droppings! ---------------
   Mclear = 0
   DO UNTIL Mclear <> 0
      DO WHILE _MOUSEINPUT
         IF _MOUSEBUTTON(1) THEN Mclear = Mclear + 1
      LOOP
   LOOP
LOOP

END SUB


'____________________________________________________________
'------------------------------------------------------------
SUB DrawCalculater

'---- Size of calculater
LX = 0
RX = 255
TY = 0
BY = 260
'---- Outline of calculater
'LINE (LX, TY)-(RX, BY), _RGB(70, 70, 70), B
'LINE (LX, TY)-(LX, BY), _RGB(255, 255, 255)
'LINE (LX, TY)-(RX, TY), _RGB(255, 255, 255)

'---- Display Box
LINE (LX + 20, TY + 20)-(RX - 20, TY + 40), _RGB(70, 70, 70), B
LINE (LX + 20, TY + 40)-(RX - 20, TY + 40), _RGB(250, 250, 250)
LINE (RX - 20, TY + 20)-(RX - 20, TY + 40), _RGB(250, 250, 250)


'Draw Buttons
FOR TY = 1 TO 130 STEP 30
   FOR LX = 1 TO 169 STEP 56
      LINE (LX + 20, TY + 50)-(LX + 65, TY + 74), _RGB(70, 70, 70), B
      LINE (LX + 20, TY + 50)-(LX + 20, TY + 74), _RGB(250, 250, 250)
      LINE (LX + 20, TY + 50)-(LX + 65, TY + 50), _RGB(250, 250, 250)
   NEXT LX
NEXT TY

' ----------- Put Lables on buttons
' --- Row 1
_PRINTSTRING (28, 55), "SqrR": _PRINTSTRING (95, 55), "%"
_PRINTSTRING (145, 55), CHR$(0) + CHR$(26): _PRINTSTRING (192, 55), "Clear"

' --- Row 2
_PRINTSTRING (40, 87), "7": _PRINTSTRING (96, 87), "8"
_PRINTSTRING (150, 88), "9": _PRINTSTRING (200, 87), CHR$(0) + CHR$(246)
' --- Row 3
_PRINTSTRING (40, 117), "4": _PRINTSTRING (96, 117), "5"
_PRINTSTRING (150, 117), "6": _PRINTSTRING (208, 117), "x"
' --- Row 4
_PRINTSTRING (40, 146), "1": _PRINTSTRING (96, 146), "2"
_PRINTSTRING (150, 146), "3": _PRINTSTRING (208, 146), "-"
' --- Row 5
_PRINTSTRING (40, 176), "0": _PRINTSTRING (96, 176), "."
_PRINTSTRING (150, 176), "=": _PRINTSTRING (208, 176), "+"

END SUB





Report Spam   Logged

Pages: [1] 2 3
  Print  
 
Jump to:  

Powered by EzPortal
Bookmark this site! | Upgrade This Forum
SMF For Free - Create your own Forum


Powered by SMF | SMF © 2016, Simple Machines
Privacy Policy