home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / dbwin.zip / FEATURES.PRG < prev    next >
Text File  |  1988-03-05  |  8KB  |  319 lines

  1. *features.prg
  2. *demonstration of windowing library
  3. load e1
  4. load e2
  5. load timeout
  6. load savescrn
  7. load restscrn
  8. load curson
  9. load cursoff
  10. * Initialize window storage
  11. set typeahead to 0
  12. WIN_1     = space(12)   && This is where we will store our parameters
  13. W_1_buf1  = space(250)
  14. W_1_buf2  = space(250)
  15. W_1_buf3  = space(250)
  16. W_1_buf4  = space(250)
  17. W_1_buf5  = space(250)
  18. W_1_buf6  = space(250)
  19. W_1_buf7  = space(250)
  20. W_1_buf8  = space(250)
  21. W_1_buf9  = space(250)
  22. W_1_buf10 = space(250)
  23. W_1_buf11 = space(250)
  24. W_1_buf12 = space(250)
  25. W_1_buf13 = space(250)
  26. W_1_buf14 = space(250)
  27. W_1_buf15 = space(250)
  28. W_1_buf16 = space(250)
  29. WIN_2     = space(12) 
  30. W_2_buf1  = space(250)
  31. W_2_buf2  = space(250)
  32. W_2_buf3  = space(250)
  33. W_2_buf4  = space(250)
  34. W_2_buf5  = space(250)
  35. W_2_buf6  = space(250)
  36. W_2_buf7  = space(250)
  37. W_2_buf8  = space(250)
  38. W_2_buf9  = space(250)
  39. W_2_buf10 = space(250)
  40. W_2_buf11 = space(250)
  41. W_2_buf12 = space(250)
  42. W_2_buf13 = space(250)
  43. W_2_buf14 = space(250)
  44. W_2_buf15 = space(250)
  45. W_2_buf16 = space(250)
  46. WIN_3     = space(12) 
  47. W_3_buf1  = space(250)
  48. W_3_buf2  = space(250)
  49. W_3_buf3  = space(250)
  50. W_3_buf4  = space(250)
  51. W_3_buf5  = space(250)
  52. W_3_buf6  = space(250)
  53. W_3_buf7  = space(250)
  54. W_3_buf8  = space(250)
  55. W_3_buf9  = space(250)
  56. W_3_buf10 = space(250)
  57. W_3_buf11 = space(250)
  58. W_3_buf12 = space(250)
  59. W_3_buf13 = space(250)
  60. W_3_buf14 = space(250)
  61. W_3_buf15 = space(250)
  62. W_3_buf16 = space(250)
  63. WIN_4     = space(12) 
  64. W_4_buf1  = space(250)
  65. W_4_buf2  = space(250)
  66. W_4_buf3  = space(250)
  67. W_4_buf4  = space(250)
  68. W_4_buf5  = space(250)
  69. W_4_buf6  = space(250)
  70. W_4_buf7  = space(250)
  71. W_4_buf8  = space(250)
  72. W_4_buf9  = space(250)
  73. W_4_buf10 = space(250)
  74. W_4_buf11 = space(250)
  75. W_4_buf12 = space(250)
  76. W_4_buf13 = space(250)
  77. W_4_buf14 = space(250)
  78. W_4_buf15 = space(250)
  79. W_4_buf16 = space(250)
  80. if iscolor()
  81.    C_BKGRND    =  "b/w,b/w,w"
  82.    C_FRGRND    =  "r/w,n/w,w"
  83.    C_HIBKGRND  =  "+gr/b,+g/b,b"
  84.    C_HILITE    =  "n/g,n/w,w"
  85.    C_BOX       =  "r/n,n/w,w"
  86.    C_BOX2      =  "+w/b,n/w,w"
  87.    C_BLINK     =  "*r/n,n/w,w"
  88.    C_INVERSE   =  "+w/g,w/b,w"
  89.    C_STRING    =  "+n/+br"
  90.    C_STRING2   =  "n/+w"
  91. else
  92.    C_BKGRND    =  "w/n,n/w,n"
  93.    C_BLINK     =  "*w/n"
  94.    C_BOX       =  "w/n"
  95.    C_FRGRND    =  "+w/n,w/n,n"
  96.    C_HIBKGRND  =  "+w/n,n/w,n"
  97.    C_HILITE    =  "w/n,n/w,n"
  98.    C_INVERSE   =  "n/w,w/n,n"
  99.    C_BOX2      =  "n/w,w/n,n"
  100.    C_STRING    =  "w/n"
  101.    C_STRING2   =  "+n/w"
  102. endif
  103. call cursoff
  104. set color to &c_bkgrnd
  105. clear
  106. set color to &c_box
  107. @ 9,22 to 15,57 double
  108. set color to &c_frgrnd
  109. @ 10,27 say "WINDOWS FOR dBASE Ver. 1.0"
  110. @ 11,30 say "Demonstration Package"
  111. @ 12,33 say "by Gary Gruber"
  112. @ 13,32 say "Data Base Designs"
  113. @ 14,33 say "Copyright 1988"
  114. call timeout with chr(5)
  115. call e1 with "1"
  116. call e2 with "1"
  117. if .not. iscolor()
  118.    set color to n/w
  119.    @ 4,9 clear to 17,70
  120. endif
  121. rele modu e1
  122. rele modu e2
  123. load e3
  124. load e4
  125. set color to &c_hilite
  126. @ 5,8 say chr(195) + replicate(chr(196),62) + chr(180)
  127. set color to &c_inverse
  128. @ 4,16  say "DBDWIND -- Windows for dBASE -- Function Library"
  129. @ 6,11  say "CURSOFF   Turns the cursor off"
  130. @ 7,11  say "CURSON    Turns the cursor on"
  131. @ 8,11  say "DIMSCRN   Resets the color attribute of a specified area"
  132. @ 9,11  say "EXPLODE   Expanding box"
  133. @ 10,11 say "FILL      Fills a box with specified char/attribute"
  134. @ 11,11 say "IMPLODE   Contracting box"
  135. @ 12,11 say "POPWIN    Restores a partial window to the screen"
  136. @ 13,11 say "RESFRDSK  Restores a disk file to the screen"
  137. @ 14,11 say "RESTOBUF  Restores a screen to a memory variable"
  138. @ 15,11 say "RESTSCRN  Restores a screen saved to memory"
  139. @ 16,11 say "SAVESCRN  Saves a screen to memory"
  140. @ 17,11 say "SAVTODSK  Saves a screen to a disk file"
  141. set color to &c_hibkgrnd
  142. call curson
  143. @ 21,11 say "Let's see what we can do with these functions...PRESS A KEY"
  144. set console off
  145. wait
  146. set console on
  147. @ 21,11 say space(59)
  148. call savescrn with win_1
  149. set color to &c_bkgrnd
  150. clear
  151. @ 12,18 say "We can save and restore the entire screen..."
  152. @ 13,34 say "PRESS A KEY!"
  153. set console off
  154. wait
  155. set console on
  156. call restscrn with win_1
  157. call cursoff
  158. call timeout with chr(2)
  159. set color to &c_box2
  160. @ 4,10 to 16,40
  161. set color to &c_bkgrnd
  162. @ 5,11 clear to 15,39
  163. @ 5,14  say "*** DEMO WINDOW #1 ***"
  164. @ 7,13  say "We can create a series of"
  165. @ 8,13  say "tiled or overlapping"
  166. @ 9,13  say "windows, pulldown menus"
  167. @ 10,13 say "or help screens!"
  168. @ 12,20 say "PRESS A KEY"
  169. call savescrn with win_1
  170. set console off
  171. wait
  172. set console on
  173. set color to &c_box
  174. @ 6,12 to 21,45
  175. set color to &c_frgrnd
  176. @ 7,13 clear to 20,44
  177. @ 7,17  say "*** DEMO WINDOW #2 ***"
  178. @ 9,15  say "These windows can be drawn"
  179. @ 10,15 say "with @ SAY... commands, and"
  180. @ 11,15 say "saved to disc files. The code"
  181. @ 12,15 say "can then be removed from your"
  182. @ 13,15 say "program. These images can be"
  183. @ 14,15 say "restored directly to the"
  184. @ 15,15 say "screen, or to a memory "
  185. @ 16,15 say "buffer where they can be" 
  186. @ 17,15 say "popped up when needed..."
  187. @ 19,23 say "PRESS A KEY"
  188. call savescrn with win_2
  189. set console off
  190. wait
  191. set console on
  192. @ 19,23 SAY SPACE(11)
  193. set color to &c_string
  194. @ 8,14 to 19,71
  195. set color to &c_string2
  196. @ 9,15 clear to 18,70
  197. @ 9,31  say "*** DEMO WINDOW #3 ***"
  198. @ 11,16 say "All of the windowing routines are written in ASSEMBLER"
  199. @ 12,16 say "So they are quite fast...In additon to popping and"
  200. @ 13,16 say "Swapping windows, we can selectively rewrite the color"
  201. @ 14,16 say "attribute of a window without disturbing its contents."
  202. @ 15,16 say "This can be used to accent or hilite a single window"
  203. @ 16,16 say "When several are visible on the screen."
  204. @ 18,36 say "PRESS A KEY"
  205. call savescrn with win_3
  206. set console off
  207. wait
  208. set console on
  209. @ 18,36 SAY SPACE(11)
  210. set color to &c_hibkgrnd
  211. @ 8,30 to 17,50 double
  212. set color to &c_inverse
  213. @ 9,31 clear to 16,49
  214. call savescrn with win_4
  215. @ 9,32  say "Let's accent this"
  216. @ 10,32 say "window by reset-"
  217. @ 11,32 say "ing the colors "
  218. @ 12,32 say "around it."
  219. @ 14,35 say "PRESS A KEY!"
  220. set console off
  221. wait
  222. set console on
  223. load d1
  224. load d2
  225. load d3
  226. load d4
  227. call d1 with "1"
  228. call d2 with "1"
  229. call d3 with "1"
  230. call d4 with "1"
  231. rele modu d1
  232. rele modu d2
  233. rele modu d3
  234. rele modu d4
  235. @ 14,32 say "Quick enough?..."
  236. @ 15,32 say "Let's restore it"
  237. @ 16,35 say "PRESS A KEY!"
  238. set console off
  239. wait
  240. set console on
  241. call restscrn with win_4
  242. @ 12,32 say "Impressed yet?..."
  243. call timeout with chr(2)
  244. call cursoff
  245. load e3
  246. load i1
  247. call i1 with "1"
  248. call e3 with "1"
  249. rele modu e3
  250. rele modu i1
  251. set color to &c_hibkgrnd
  252. @ 12,23 say "I've been saving the best for last."
  253. @ 13,20 say "Watch as we pop up the underlying windows"
  254. @ 14,20 say "without disturbing the rest of the screen"
  255. @ 16,35 say "PRESS A KEY!"
  256. set console off
  257. wait
  258. set console on
  259. set typeahead to 10
  260. set escape off
  261. load p1
  262. load p2
  263. load p3
  264. do while .t.
  265.    call p2 with win_2
  266.    @ 23,13 say "THERE'S OUR SECOND WINDOW...PRESS A KEY, <ESC> TO QUIT"
  267.    i = 0
  268.    do while i = 0
  269.       i=inkey()
  270.    enddo
  271.    if i=27
  272.       exit
  273.    endif
  274.    call p3 with win_3       
  275.    @ 23,13 say "THERE'S OUR THIRD WINDOW...PRESS A KEY, <ESC> TO QUIT  "
  276.    i = 0
  277.    do while i = 0
  278.       i=inkey()
  279.    enddo
  280.    if i=27
  281.       exit
  282.    endif
  283.    call p1 with win_1
  284.    @ 23,13 say "THERE'S OUR FIRST WINDOW...PRESS A KEY, <ESC> TO QUIT  "
  285.    i = 0
  286.    do while i = 0
  287.       i=inkey()
  288.    enddo
  289.    if i=27
  290.       exit
  291.    endif
  292. enddo
  293. call e4 with "1"
  294. rele modu e4
  295. load f1
  296. call f1 with "1"
  297. rele modu f1
  298. @ 12,6 say "The final portion of this demo will restore a screen from a disk file"
  299. @ 13,34 say "PRESS A KEY!"
  300. set console off
  301. wait
  302. set console on
  303. load resfrdsk
  304. set color to n/w
  305. call resfrdsk with "promo.scr"
  306. call curson
  307. set escape on
  308. rele modu p1
  309. rele modu p2
  310. rele modu p3
  311. rele modu timeout
  312. rele modu savescrn
  313. rele modu restscrn
  314. rele modu resfrdsk
  315. rele modu curson
  316. rele modu cursoff
  317. return
  318. *eof features
  319.