home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / wp_dtp / proan111.lha / Demo.ProANSI < prev    next >
Text File  |  1992-05-28  |  3KB  |  128 lines

  1. /*************************************************************************\
  2. *                                                                         *
  3. * bestand:                                                                *
  4. *  Demo.ProANSI                                                           *
  5. *                                                                         *
  6. * auteur:                                                                 *
  7. *  Marcel Offermans                                                       *
  8. *                                                                         *
  9. * NB:                                                                     *
  10. *  Dit is een demonstratie, waarin een aantal ARexx commando's van        *
  11. *  ProANSI te zien zijn. Dit programma kun je gebruiken om de werking van *
  12. *  de commando's te bekijken, of als basis voor je eigen ARexx scripts.   *
  13. *                                                                         *
  14. \*************************************************************************/
  15.  
  16. /* een paar variabelen: */
  17.  
  18. /* een lijstje met de namen van de kleuren in `normaal nederlands' */
  19. col.0 = "zwart"
  20. col.1 = "rood"
  21. col.2 = "groen"
  22. col.3 = "geel"
  23. col.4 = "blauw"
  24. col.5 = "paars"
  25. col.6 = "cyaan"
  26. col.7 = "lichtgrijs"
  27. col.8 = "donkergrijs"
  28. col.9 = "lichtrood"
  29. col.10 = "lichtgroen"
  30. col.11 = "lichtgeel"
  31. col.12 = "lichtblauw"
  32. col.13 = "lichtpaars"
  33. col.14 = "lichtcyaan"
  34. col.15 = "wit"
  35.  
  36. /* ARexx even melden dat we met ProANSI willen praten. */
  37. address 'REXX_ProANSI'
  38.  
  39. /* En dat we ook antwoord willen! */
  40. options results
  41.  
  42. /*  Toon ProANSI's versie string. Dit kan trouwens ook via de Shell met het
  43.  *  volgende commando:
  44.  *  > version ProANSI FULL
  45.  *  of:
  46.  *  > ProANSI ?
  47.  */
  48. version
  49. progversion = result
  50. say 'ProANSI programmaversie: ' || progversion || '0a'x
  51.  
  52. /* even laten zien dat we het begrepen hebben... */
  53. get_fcol
  54. fcol = result
  55. get_bcol
  56. bcol = result
  57.  
  58. 'select_col' 7 0
  59.  
  60. 'set_pos' 0 0
  61.  
  62. print_string 'Als je ook even niet oplet...' || '0a'x
  63. 'print_string' 'De voorgrond was net ' || col.fcol || ', de achtergrond ' || col.bcol
  64.  
  65. call simple_box(2,6,77,21)
  66.  
  67. /* Een beetje dollen met de cursor... */
  68.  
  69. 'select_col' 15 1
  70. call simple_box(17,9,59,11)
  71. 'set_pos' 18 10
  72. 'print_string' '   Welkom bij ProANSI, dit is een demo   '
  73.  
  74. 'select_col' 15 2
  75. call simple_box(19,12,57,14)
  76. 'set_pos' 20 13
  77. 'print_string' ' van het ingebouwde ARexx interface. '
  78.  
  79. 'go_down' 5
  80. 'select_col' 9 0
  81. 'print_string' 'Marcel Offermans'
  82. 'set_pos' 0 0
  83. 'select_col' 15 0
  84.  
  85. 'select_col' 3 0
  86. call simple_box(3,7,76,20)
  87.  
  88. 'save_ansi' 'ram:testing'
  89.  
  90. exit 0
  91.  
  92. /*  En nu een beetje geavanceerder, zo hoef je in het programma geen
  93.  *  box functie te bouwen, je doet het gewoon in ARexx, veel flexibeler!
  94.  *  Wel een beetje langzamer, maar dat moet je dan maar op de koop toe
  95.  *  nemen! Deze box functie werkt ook in de anim mode, da's het hele verschil.
  96.  */
  97. simple_box:
  98. arg xmin, ymin, xmax, ymax
  99.  
  100. 'set_pos' xmin ymin
  101.  
  102. if ((xmax <= xmin) || (ymax <= ymin)) then do
  103.     return
  104. end
  105.  
  106. /* Maak een string met lengte xmax-xmin */
  107. topline = 'da'x || Copies('c4'x, xmax-xmin-1) || 'bf'x
  108. 'print_string' topline
  109.  
  110. do y = ymin+1 to ymax-1
  111.     'set_pos' xmin y
  112.     'print_string' 'b3'x
  113.     'set_pos' xmax y
  114.     'print_string' 'b3'x
  115. end
  116.  
  117. 'set_pos' xmin ymax
  118.  
  119. /* Maak een string met lengte xmax-xmin */
  120. bottomline = 'c0'x || Copies('c4'x, xmax-xmin-1) || 'd9'x
  121. 'print_string' bottomline
  122.  
  123. return
  124.  
  125. /* Verlaten zou zijn:
  126.  * 'quit'
  127.  */
  128.