home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progbas / baswind4.arj / BASWIN22.ZIP / DEMO2.BAS < prev    next >
BASIC Source File  |  1986-11-14  |  13KB  |  349 lines

  1.                  key off:color 7,1:cls
  2.          dim scrn%(2000),item$(100),tagged%(100),tag$(100),msgdat$(5)
  3.                  for i=1 to 30
  4.  
  5.                      ulr%=rnd*17:while ulr% = 0:ulr%=rnd*17:wend
  6.                      lrr%=rnd*23:while lrr% < ulr%:lrr%=rnd*23:wend
  7.                      ulc%=rnd*60:while ulc% = 0:ulc%=rnd*60:wend
  8.                      lrc%=rnd*79:while lrc% < ulc%:lrc%=rnd*79:wend
  9.                      fore%=rnd*15
  10.                      back%=rnd*7
  11.                      call makewind(ulr%,ulc%,lrr%,lrc%,2,fore%,back%,0,1,"")
  12.  
  13.                  next i
  14.  
  15.                  call makewind(9,15,16,65,2,0,7,0,1,"")
  16.                  color 0,7
  17.                  locate 9,18:print "Introducing ..."
  18.                  locate 11,18:print "             Window Tools"
  19.                  locate 13,18:print "A collection of useful routines based on"
  20.                  locate 14,18:print "BASWIND2 designed to perform powerful func-"
  21.                  locate 15,18:print "tions in your own programs ..."
  22.  
  23.                  seconds=5:gosub waitsec
  24.  
  25.                  call makewind(9,15,16,65,2,0,7,0,0,"")
  26.                  locate 12,18:print "     Stand by for a complete demo ...   "
  27.                  seconds=5:gosub waitsec
  28.  
  29.                  color 7,1
  30.                  cls
  31.                  locate 8,10:print "The first demo you will see will be POPMENU - A routine"
  32.                  locate 9,10:print "used to select options from a menu window using the cursor"
  33.                  locate 10,10:print "keys to move a 'select bar'. You will actually use this"
  34.                  locate 11,10:print "routine to select the other demos ..."
  35.  
  36.                  seconds=7:gosub waitsec
  37. demo:            cls
  38.  
  39.                  item$(1)="  POPLIST      "
  40.                  item$(2)="  TAGLIST      "
  41.                  item$(3)="  POPDIR       "
  42.                  item$(4)="  TAGDIR       "
  43.                  item$(5)="  BARMENU      "
  44.                  item$(6)="  MENU123      "
  45.                  item$(7)="  CALENDAR     "
  46.                  item$(8)="  CALENDR3     "
  47.                  item$(9)="  KEYCAL       "
  48.                  item$(10)="  CAUTION      "
  49.                  item$(11)="  WARNING      "
  50.          item$(12)="  End Demo     "
  51.  
  52.          call popmenu("Select Demo ...",12,item$(),4,0,7,15,1,"0",1,select%)
  53.                  on select% gosub dopopl,dotagl,dopopd,dotagd,dobar,do123,docal,docal3,dokey,docau,dowarn
  54.                  if select%=12 then goto endit
  55.                  goto demo
  56.  
  57. dopopl:          cls
  58.                  locate 8,10:print "This is POPLIST - a pop-up window that allows you to"
  59.                  locate 9,10:print "display a list of items passed in an array. If there"
  60.                  locate 10,10:print "are too many items in the list to fit in the window,"
  61.                  locate 11,10:print "you can scroll the data up and down; use the Page Up"
  62.                  locate 12,10:print "and Page Down keys and the Home and End Keys to fully"
  63.                  locate 13,10:print "display all of the items in the list ..."
  64.  
  65.                  seconds=10:gosub waitsec
  66.  
  67.                  cls
  68.                  for i=1 to 100
  69.                      item$(i)=space$(18)
  70.                      temp$="  Item # "+str$(i)
  71.                      mid$(item$(i),3,len(temp$))=temp$
  72.                  next i
  73.  
  74.                  call poplist("Choose an Item ...",10,100,item$(),0,3,15,5,"0",1,select%)
  75.  
  76.                  locate 23,10
  77.                  print "The Item Number you selected was ";select%;"   ";item$(select%)
  78.  
  79.                  seconds=5:gosub waitsec
  80.  
  81.                  return
  82.  
  83. dotagl:          cls
  84.                  locate 8,10:print "This is TAGLIST - Similar in function to POPLIST, this routine"
  85.                  locate 9,10:print "allows you to scroll through a large list of items; but rather"
  86.                  locate 10,10:print "than letting you select only one item, it allows you to 'tag'"
  87.                  locate 11,10:print "a group of items using the 'T' key, or 'untag' items already"
  88.                  locate 12,10:print "tagged by means of the 'U' key ..."
  89.  
  90.                  seconds=10:gosub waitsec
  91.  
  92.                  cls
  93.          for i=0 to 99
  94.                      item$(i)=space$(18)
  95.              tagged%(i)=0
  96.                      temp$="  Item # "+str$(i)
  97.                      mid$(item$(i),3,len(temp$))=temp$
  98.                  next i
  99.  
  100.          call taglist("[T]ag or [U]ntag",10,99,numtagged%,item$(),tagged%(),5,0,0,7,"0",0)
  101.  
  102.                  locate 2,3
  103.          print "The ";numtagged%;" Items you tagged were: "
  104.                  locate 4,5
  105.          for i=0 to 99
  106.              locate ,5:if tagged%(i)=1 then print item$(i)
  107.                  next i
  108.  
  109.                  seconds=5:gosub waitsec
  110.  
  111.                  return
  112.  
  113. dopopd:          cls
  114.  
  115.                  locate 8,10:print "This is POPDIR - A special case of the POPLIST routine. Here the"
  116.                  locate 9,10:print "items to be selected from are the directory of a disk, returned"
  117.                  locate 10,10:print "from a directory search given a filespec which may include the"
  118.                  locate 11,10:print "wildcard characters '?' and '*' ..."
  119.  
  120.                  seconds=10:gosub waitsec
  121.  
  122.                  cls
  123.                 
  124.                  input "Enter File Spec: ";SEARCH$
  125.                  CALL POPDIR(SEARCH$,10,0,7,5,7,"0",1,NUMFILES%,SELECTFILE$)
  126.                  locate 23,10:print "Returned Value is: ";selectfile$
  127.  
  128.                  seconds=5:gosub waitsec
  129.  
  130.                  return
  131.  
  132. dotagd:          cls
  133.  
  134.                  locate 8,10:print "This is TAGDIR - A special case of the POPDIR routine. Instead of "
  135.                  locate 9,10:print "selecting only one file from a directory, you may tag and untag"
  136.                  locate 10,10:print "filenames to be returned in an array. This type of routine is"
  137.                  locate 11,10:print "useful for File Manager type programs ..."
  138.  
  139.                  seconds=10:gosub waitsec
  140.  
  141.                  cls
  142.                 
  143.                  input "Enter File Spec: ";SEARCH$
  144.          CALL TAGDIR(SEARCH$,10,6,0,0,7,"0",0,numtagged%,tag$())
  145.  
  146.                  locate 2,3
  147.          print "The ";numtagged%;" Items you tagged were: "
  148.                  locate 4,5
  149.          for i=0 to numtagged%-1
  150.              locate ,5:print tag$(i)
  151.                  next i
  152.  
  153.                  seconds=5:gosub waitsec
  154.  
  155.                  return
  156.  
  157. dobar:           cls
  158.  
  159.                  locate 8,10:print "This is BARMENU - A highlighted Menu Bar is passed to the routine"
  160.                  locate 9,10:print "as a string. By pressing the left and right cursor keys, a 'pull-down'"
  161.                  locate 10,10:print "menu is displayed below each of the Menu Bar items. This routine is"
  162.                  locate 11,10:print "very similar to the user interface of QuickBASIC Version 2.0 ..."
  163.  
  164.                  seconds=10:gosub waitsec
  165.  
  166.                  cls
  167.                  DIM MAXSIZE%(15),MAXITEMS%(15),ITEMS$(5,15)
  168.          for i=0 TO 4
  169.              for j=0 TO 9
  170.              ITEMS$(I,J)=" Menu"+str$(i+1)+" Item"+str$(j+1)+" "
  171.                      next j
  172.                  next i
  173.  
  174.          for i=0 TO 4
  175.              MAXSIZE%(I)=15
  176.              MAXITEMS%(I)=10
  177.                  next i
  178.                  
  179.          MENULINE$="   MENU#1      MENU#2      MENU#3      MENU#4      MENU#5                     "
  180.          CALL BARMENU(MENULINE$,0,7,12,5,MAXSIZE%(),MAXITEMS%(),ITEMS$(),MENUSLCT%,ITEMSLCT%)
  181.                  locate 23,10:print "Returned Value is MENU: ";MENUSLCT%;" ITEM: ";ITEMSLCT%;"   ";
  182.  
  183.                  seconds=5:gosub waitsec
  184.  
  185.                  return
  186.  
  187. do123:           cls
  188.  
  189.                  locate 8,10:print "This is MENU123 - An imitation of the Lotus 1-2-3 user interface. A menu bar"
  190.                  locate 9,10:print "string is passed to the routine for the various selections to be displayed."
  191.                  locate 10,10:print "Also, an array of descriptions for each menu choice is also passed to be "
  192.                  locate 11,10:print "shown on the line below. A highlighted block defines the current selection ..."
  193.  
  194.                  seconds=10:gosub waitsec
  195.  
  196.                  cls
  197.                  DIM ITEMDESC$(10)
  198.                  MENULINE$=" Format Copy Rename Delete Erase Move Discard Pop Push BigBadBillybob "
  199.                  MENUFG%=7:MENUBG%=1
  200.                  ITEMNUM%=10
  201.          FOR I=0 TO ITEMNUM%
  202.            ITEMDESC$(I)="This is Menu Item Number"+str$(i+1)
  203.                  NEXT I
  204.  
  205.                  COLOR 7,1:KEY OFF:CLS
  206.                  LOCATE 3,1:PRINT STRING$(80,205)
  207.                  CALL MENU123(MENULINE$,1,MENUFG%,MENUBG%,ITEMNUM%,ITEMDESC$(),ITEMSLCT%)
  208.  
  209.                  LOCATE  10,10
  210.                  PRINT "Item Selected Was: ";itemslct%
  211.  
  212.                  seconds=5:gosub waitsec
  213.  
  214.                  return
  215.  
  216. docal:           cls
  217.  
  218.          locate 8,10:print "This is CALENDAR - As its name implies, this routine returns"
  219.          locate 9,10:print "a calendar displayed in a window when passed a month number "
  220.          locate 10,10:print "and a year..."
  221.  
  222.                  seconds=10:gosub waitsec
  223.  
  224.                  cls
  225.          input "Month (1-12)",month%
  226.          input "Year (4 digit)",year%
  227.          CALL CALENDAR(MONTH%,YEAR%,"0",0,7,1)
  228.  
  229.          seconds=10:gosub waitsec
  230.          color 7,1:cls
  231.                  return
  232.  
  233. docal3:          cls
  234.  
  235.          locate 8,10:print "This is CALENDR3 - Like CALENDAR, this routine returns"
  236.          locate 9,10:print "a calendar in a window when passed a month number and a"
  237.          locate 10,10:print "year; however, this routine also returns calendars for"
  238.          locate 11,10:print "the previous and following months ..."
  239.                  seconds=10:gosub waitsec
  240.  
  241.                  cls
  242.          input "Month (1-12)",month%
  243.          input "Year (4 digit)",year%
  244.          CALL CALENDR3(MONTH%,YEAR%,12,0,7,1)
  245.  
  246.          seconds=10:gosub waitsec
  247.          color 7,1:cls
  248.                  return
  249.  
  250. dokey:           cls
  251.  
  252.                  locate 8,10:print "This is KEYCAL - Like CALENDAR, this routine returns a calendar"
  253.                  locate 9,10:print "in a window when passed a month number and a year; however this"
  254.                  locate 10,10:print "routine allows you to advance or back up months and years by"
  255.          locate 11,10:print "using the cursor keys ..."
  256.                  seconds=10:gosub waitsec
  257.  
  258.                  cls
  259.          input "Month (1-12)",month%
  260.          input "Year (4 digit)",year%
  261.          print "Press [ESC] or [RETURN] to exit ..."
  262.  
  263.          call keycal(MONTH%,YEAR%,"0",0,7,1)
  264.          color 7,1
  265.          cls
  266.                  return
  267.  
  268. docau:           cls
  269.  
  270.                  locate 8,10:print "This is CAUTION - It displays a yellow 'caution' window with one"
  271.                  locate 9,10:print "or more lines of text passed to it in an array. You then select"
  272.                  locate 10,10:print "(using the cursor keys) whether to Continue or Cancel the current"
  273.          locate 11,10:print "operation ..."
  274.  
  275.                  seconds=10:gosub waitsec
  276.  
  277.                  cls
  278.  
  279.                  MSGDAT$(0)="You are about to convert your Color Monitor"
  280.          MSGDAT$(1)="into a Monochrome Monitor."
  281.          MSGDAT$(3)="ARE YOU ABSOLUTELY SURE YOU WANT TO DO THIS?"
  282.  
  283.          CALL CAUTION(4,MSGDAT$(),"0",RETURN.CODE%)
  284.          LOCATE 23,35
  285.                  IF RETURN.CODE%=0 THEN PRINT "CANCEL" ELSE PRINT "CONTINUE"
  286.  
  287.                  seconds=5:gosub waitsec
  288.  
  289.                  return
  290.  
  291. dowarn:          cls
  292.  
  293.                  locate 8,10:print "This is WARNING - It displays a red 'WARNING' window with one"
  294.                  locate 9,10:print "or more lines of text passed to it in an array. You then select"
  295.                  locate 10,10:print "(using the cursor keys) whether to Continue or Cancel the current"
  296.          locate 11,10:print "operation ..."
  297.  
  298.                  seconds=10:gosub waitsec
  299.  
  300.                  cls
  301.  
  302.                  MSGDAT$(0)="You are about to convert your house AC voltage"
  303.          MSGDAT$(1)="from 110 volts to 440 volts."
  304.          MSGDAT$(3)="ARE YOU ABSOLUTELY SURE YOU WANT TO DO THIS?"
  305.  
  306.          CALL WARNING(4,MSGDAT$(),"0",RETURN.CODE%)
  307.          LOCATE 23,35
  308.                  IF RETURN.CODE%=0 THEN PRINT "CANCEL" ELSE PRINT "CONTINUE"
  309.  
  310.                  seconds=5:gosub waitsec
  311.  
  312.                  return
  313.  
  314. endit:
  315.  
  316.          color 7,1:cls
  317.  
  318.          call makewind(9,15,16,65,2,0,7,0,1,"")
  319.  
  320.          color 0,7
  321.          locate 10,18:print "            *  Window Tools  *    "
  322.          locate 12,18:print "As a marketing experiment, the Window Tools "
  323.          locate 13,18:print "routines will be released to the Public Do-"
  324.          locate 14,18:print "main at the rate of about one per month ..."
  325.  
  326.          seconds=5:gosub waitsec
  327.  
  328.          call makewind(9,15,16,65,2,0,7,0,0,"")
  329.  
  330.          locate 9,18:print "However, if you would like to obtain all of"
  331.          locate 10,18:print "these routines at once, with source code and"
  332.          locate 11,18:print "supporting documentation, please send $25 to:"
  333.          locate 13,18:print "                Dave Evers                   "
  334.          locate 14,18:print "            2500 Larch Rd. #58               "
  335.          locate 15,18:print "             Quincy, IL  62301  "
  336.  
  337.          seconds=5:gosub waitsec
  338.  
  339.          color 7,1
  340.          locate 22,9:print "Please see accompanying file BASWIND2.ARC for more information"
  341.  
  342.                  end
  343.  
  344. waitsec:         begintime=timer
  345.                  while endtime < begintime+seconds
  346.                  endtime=timer
  347.                  wend
  348.                  return
  349.