home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 09 / anwendg / d_fenste.prg next >
Encoding:
Text File  |  1989-06-21  |  5.1 KB  |  189 lines

  1. * -------------------------------------------------------- *
  2. *                    D_FENSTE.PRG                          *      
  3. *  Demo der Möglichkeiten der Fenstertechnik in dBase IV   *       
  4. *        (c) 1989   E.Schubert  &  TOOLBOX                 *
  5. * -------------------------------------------------------- *
  6.  
  7. SET scoreboard off
  8. SET status     off
  9. SET talk       off
  10. SET MESSAGE to
  11. SET ESCAPE  OFF
  12.              * Fenster definieren
  13. DO f_DEFINE
  14.              * ein Fenster aktivieren
  15. ACTIVATE WINDOW mitte
  16. wait " Bitte Taste drücken " to dummy
  17.              * das erste Fenster verschwindet, 
  18.              * kann aber jederzeit wieder aktiviert 
  19.              * werden
  20. DEACTIVATE WINDOW mitte
  21.              * ein weiteres Fenster aktivieren
  22. ACTIVATE WINDOW unten
  23. wait " Bitte Taste drücken " to dummy
  24. @ 0,0 clear
  25.              * mehrere Fenster gleichzeitig anzeigen
  26.              * geschrieben werden kann nur in das 
  27.              * zuletzt aktivierte
  28. ACTIVATE WINDOW oben
  29. wait " Bitte Taste drücken " to dummy
  30. ACTIVATE WINDOW mitte
  31. wait " Bitte Taste drücken " to dummy
  32. ACTIVATE WINDOW unten
  33. wait " Bitte Taste drücken " to dummy
  34.  
  35.              * alle Fenster löschen
  36.              * im Unterschied zu DEACTIVATE wird der 
  37.              * Speicherinhalt gelöscht
  38. clear WINDOWs
  39.              * Fenster können natürlich auch ver-
  40.              * schoben, vergrößert, verkleinert 
  41.              * werden
  42.              * Definition eines Fensters zum Spielen
  43.              * Eckpunkte des Fensters durch Variable 
  44.              * festlegen
  45. x1 = 11
  46. x2 = 13
  47. y1 = 35
  48. y2 = 44
  49. DEFINE WINDOW spiel from x1, y1 to x2, y2
  50.  
  51.              * Das Fenster darf nicht über die Bild-
  52.              * schirmgrenze, deshalb
  53. min_x = 0
  54. max_x = 20
  55. min_y = 0
  56. max_y = 79
  57.              * Fenster anzeigen
  58. ACTIVATE WINDOW spiel
  59.              * Jetzt wollen wir damit spielen!
  60. DO spielen
  61. SET MESSAGE to "Ende mit beliebiger Taste"
  62. wait " So ist das Fenster natürlich schöner!" to taste
  63. SET scoreboard on
  64. SET status     on
  65. SET talk       on
  66. SET MESSAGE to
  67. SET border to
  68. SET color to
  69. clear all
  70.              * EOP d_fenste.prg
  71.  
  72.   procedure f_DEFINE
  73.     DEFINE WINDOW oben  from 1,1   to 10,50
  74.     DEFINE WINDOW mitte from 9,25  to 15,55
  75.     DEFINE WINDOW unten from 14,30 to 24,79
  76.   return
  77.  
  78.   procedure spielen
  79.     SET MESSAGE to "Verschieben F7   " + ;
  80.            "Vergrößern SHIFT F7   Ende RETURN"
  81.     taste = 0
  82.     DO while taste <> 13
  83.       SET MESSAGE to "Verschieben F7   " + ;
  84.              "Vergrößern SHIFT F7  Ende mit Return"
  85.       taste = inkey(5)
  86.       DO CASE
  87.     CASE taste = - 6         && F7 --  also verschieben
  88.       ende = 0
  89.       DO while ende <> 13
  90.         SET MESSAGE to "Cursortasten zur Steuerung " + ;
  91.                "benutzen  Ende RETURN"
  92.         ende = inkey(55)
  93.         DO CASE
  94.           CASE ende = 4        && nach rechts
  95.         y2 = y2 + 2
  96.            * überprüfen, ob Grenzen überschritten werden
  97.         if y2 < max_y
  98.           move WINDOW spiel by 0,1
  99.           y1 = y1 + 1
  100.              * linke Eckkoordinate erhöhen
  101.         else
  102.           y2 = y2 - 1
  103.         endif
  104.           CASE ende = 5        && aufwärts
  105.         x1 = x1 - 1
  106.         if x1 > min_x
  107.           move WINDOW spiel by -1,0
  108.           x2 = x2 - 1
  109.         else
  110.           x1 = x1 + 1
  111.         endif
  112.           CASE ende = 19        && nach links
  113.         y1 = y1 - 1
  114.         if y1 > min_y
  115.           move WINDOW spiel by 0,-1
  116.           y2 = y2 - 1
  117.         else
  118.           y1 = y1 + 1
  119.         endif
  120.           CASE ende = 24        && abwärts
  121.         x2 = x2 + 1
  122.         if x2 < max_x
  123.           move WINDOW spiel by 1,0
  124.           x1 = x1 + 1
  125.         else
  126.           x2 = x2 - 1
  127.         endif
  128.           otherwise 
  129.         endCASE
  130.       endDO
  131.     CASE taste = -26      && Shift F7 -- also vergrößern
  132.       clear WINDOWs
  133.       SET color of box to w+*/n
  134.       SET border to single
  135.       DEFINE WINDOW spiel from x1,y1 to x2,y2
  136.       ACTIVATE WINDOW spiel
  137.       ende = 0
  138.       DO while ende <> 13
  139.         SET MESSAGE to "Cursortasten zur Steuerung " + ;
  140.                        "benutzen  Ende RETURN"
  141.         SET border to single
  142.         ende = inkey(55)
  143.         DO CASE
  144.           CASE ende = 4   && nach rechts vergrößern
  145.             y2 = y2 + 1
  146.             if y2 < max_y
  147.               DEFINE WINDOW spiel from x1,y1 to x2,y2
  148.               ACTIVATE WINDOW spiel
  149.             else
  150.               y2 = y2 - 1
  151.             endif
  152.           CASE ende = 5   && nach oben vergrößern
  153.             x1 = x1 - 1
  154.             if x1 > min_x
  155.               SET border to single
  156.               DEFINE WINDOW spiel from x1,y1 to x2,y2
  157.               ACTIVATE WINDOW spiel
  158.             else
  159.               x1 = x1 + 1
  160.             endif
  161.           CASE ende= 19   && nach links vergrößern
  162.             y1 = y1 - 1
  163.             if y1 > min_y
  164.               SET border to single
  165.               DEFINE WINDOW spiel from x1,y1 to x2,y2
  166.               ACTIVATE WINDOW spiel
  167.             else
  168.               y1 = y1 + 1
  169.             endif
  170.           CASE ende= 24   && abwärts
  171.             x2 = x2 + 1
  172.             if x2 < max_x
  173.               SET border to single
  174.               DEFINE WINDOW spiel from x1,y1 to x2,y2
  175.               ACTIVATE WINDOW spiel
  176.             else
  177.               x2 = x2 - 1
  178.             endif
  179.           otherwise 
  180.           endCASE
  181.         endDO
  182.       endCASE
  183.         SET border to
  184.         DEFINE WINDOW spiel from x1,y1 to x2,y2 DOuble
  185.         ACTIVATE WINDOW spiel
  186.       endDO
  187.     return
  188. * -------------------------------------------------------- *
  189. *                Ende von D_FENSTER.PRG                    *