home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 14 / CDACTUAL.iso / cdactual / demobin / share / program / Basic / VWEZ60.ZIP / MULTSAM2.BAS < prev    next >
Encoding:
BASIC Source File  |  1992-11-11  |  4.7 KB  |  98 lines

  1. '***************************************************************************
  2. ' This is an example of using a field in MULTINPT as a FIXED CHOICE     ****
  3. ' field.  Field two provides the choices of BASIC, PASCAL, OR ASSEMBLY. ****
  4. '***************************************************************************
  5. '**** THIS PROGRAM MUST BE USED WITH ONE OF THE FOLLOWING LIBRARIES:    ****
  6. '***************************************************************************
  7. '**** For QB4.5 unenhanced version use QBUNEN.QLB                       ****
  8. '**** For BASIC 7.+ unenhanced version use PDSUNEN.QLB                  ****
  9. '**** For VBDOS 1.0 unenhanced version use VBUNEN.QLB                   ****
  10. '**** For QB4.50 enhanced version use QBALL.QLB or QBNER.QLB            ****
  11. '**** For BASIC 7.1 enhanced version use PDSALL.QLB or PDSNER.QLB      ****
  12. '**** For VBDOS 1.0 enhanced version use VBALL.QLB or VBNER.QLB         ****
  13. '**** Load QB, QBX, or VBDOS with the /L option and the correct library ****
  14. '***************************************************************************
  15. DECLARE SUB MULTINPT (S%, TOFLD%, OPTION$, FF%, RKEY%, RTRN$(), SF%)
  16. DECLARE SUB SETINPT (SCRN%, DISPLAYLEN%, EXIT$, HOTCOL%)
  17. DECLARE SUB MAKEWIND (W%, LABEL$, TR%, LC%, WD%, NR%, ATTR%, BORDER%)
  18. DECLARE SUB PRINTW (TEXT$, R%, LC%)
  19. DECLARE SUB SETWIND (FST%, S%, SH%, NH%, BRKT%)
  20. DECLARE FUNCTION MOUSEON% (ISON%)
  21. DECLARE SUB BOXW (TR%, LC%, WD%, NR%, BORDER%)
  22. DECLARE SUB UPDATEFIELD (SCRN%, FLD%, TEXT$)
  23. DECLARE SUB INPTINIT (DTYPE%, ISDOT%, AT1%, BLNK%, MS%)
  24. DECLARE SUB MAKEFIELD (SCRN%, FLD%, SCODE%, STR%, SLC%, SWD%, SBASEATTR%, SACTATTR%, MATTR%, RES$, EXTO$, HOTPOS%, CURPOS%, BRACKET%)
  25. '****************************************************************************
  26.  
  27. CALL SETWIND(1, 1, 7, 0, 15)            ' INITIALIZE WINDOW MEMORY
  28. CALL INPTINIT(1, 1, 1, 1, 1)            ' INITIALIZE INPUT MEMORY
  29. JUNK% = MOUSEON%(1)                     ' TURN THE MOUSE ON
  30. COLOR 7, 0: CLS                         ' BLANK THE SCREEN
  31. DIM RTRN$(6)                            ' For the six fields/buttons
  32. '---------------------------------------------------------------------------
  33. ' SETINPT MUST BE CALLED FOR EACH MULTI-FIELD INPUT SCREEN
  34.  
  35. CALL SETINPT(1, 25, "E", 127)
  36. FOR X% = 1 TO 4
  37.   READ CODE%, TR%, LC%, WD%
  38.   CALL MAKEFIELD(1, X%, CODE%, TR%, LC%, WD%, 15, 15, 15, "", "", 0, 1, 0)
  39. NEXT
  40.  
  41. ' Auto-exit - auto advance - numeric with no decimal places
  42. DATA 11000,5,5,4                               : 'FIELD 1
  43. ' Auto-exit - auto advance - numeric with no decimal places
  44. DATA 11000,7,5,4                               : 'FIELD 2
  45. ' Protected - numeric with no decimal places
  46. DATA 100,9,5,5                                 : 'FIELD 3
  47. ' Alpha / numeric
  48. DATA 7,11,5,15                                 : 'FIELD 4
  49.  
  50. ' Make the "button" fields
  51. MAKEFIELD 1, 5, 30007, 14, 13, 6, 112, 15, 15, "", "", 0, 3, 1    ' OK
  52. RTRN$(5) = "< OK >"
  53. MAKEFIELD 1, 6, 30007, 14, 58, 10, 112, 15, 15, "", "", 0, 3, 1   ' CANCEL
  54. RTRN$(6) = "< CANCEL >"
  55. '----------------------------------------------------------------------------
  56. ' MAKE A WINDOW.  PRINT INSTRUCTIONS
  57.  
  58. CALL MAKEWIND(1, "@Auto-exit fields used to update a protected field", 1, 1, 80, 16, 112, 102)
  59. CALL PRINTW("Auto-exit and auto advance with numeric input", 2, 15)
  60. CALL PRINTW("+", 3, 5)
  61. CALL PRINTW("Auto-exit and auto advance with numeric input", 4, 15)
  62. CALL PRINTW("Protected Field", 6, 15)
  63. CALL PRINTW("Alpha-numeric", 8, 24)
  64. CALL PRINTW("-------- Button fields ---------", 11, 23)
  65. CALL BOXW(10, 8, 14, 3, 2)
  66. CALL BOXW(10, 55, 14, 3, 2)
  67. '----------------------------------------------------------------------------
  68.  
  69. TOFLD% = 1: FROMFLD% = 0              ' START IN FIELD 1.  PRINT ALL
  70.                                       ' FIELDS.
  71. '----------------------------------------------------------------------------
  72. DO
  73.   CALL MULTINPT(1, TOFLD%, "U", FROMFLD%, RKEY%, RTRN$(), SELECTION%)
  74.  
  75.   IF FROMFLD% = 1 OR FROMFLD% = 2 THEN                ' IS IT FIELD 1 OR 2 ?
  76.     RTRN$(3) = STR$(VAL(RTRN$(1)) + VAL(RTRN$(2)))    ' ADD FIELD 1 + 2
  77.     IF RTRN$(1) + RTRN$(2) = "" THEN RTRN$(3) = ""
  78.     CALL UPDATEFIELD(1, 3, RTRN$(3))                  ' UPDATE FIELD 3 ONLY
  79.   END IF
  80.  
  81.   ' Make mouse release on OK and CANCEL same a ENTER
  82.   IF TOFLD% > 4 AND RKEY% = 100 THEN FROMFLD% = TOFLD%: RKEY% = 13
  83.  
  84.   ' Make ESC same as ENTER on CANCEL
  85.   IF RKEY% = 27 THEN FROMFLD% = 6: RKEY% = 13
  86.  
  87.   ' Do until OK or CANCEL selection is made via mouse, ENTER or SPACE BAR.
  88.  
  89. LOOP UNTIL FROMFLD% > 4 AND (RKEY% = 13 OR RKEY% = 32)
  90.  
  91.   ' OK or CANCEL selected
  92.   LOCATE 18, 1
  93.   IF FROMFLD% = 5 THEN PRINT "OK EXITED" ELSE PRINT "CANCEL/ESC EXITED"
  94.  
  95.  
  96.                                    
  97.  
  98.