home *** CD-ROM | disk | FTP | other *** search
- * -------------------------------------------------------- *
- * D_FENSTE.PRG *
- * Demo der Möglichkeiten der Fenstertechnik in dBase IV *
- * (c) 1989 E.Schubert & TOOLBOX *
- * -------------------------------------------------------- *
-
- SET scoreboard off
- SET status off
- SET talk off
- SET MESSAGE to
- SET ESCAPE OFF
- * Fenster definieren
- DO f_DEFINE
- * ein Fenster aktivieren
- ACTIVATE WINDOW mitte
- wait " Bitte Taste drücken " to dummy
- * das erste Fenster verschwindet,
- * kann aber jederzeit wieder aktiviert
- * werden
- DEACTIVATE WINDOW mitte
- * ein weiteres Fenster aktivieren
- ACTIVATE WINDOW unten
- wait " Bitte Taste drücken " to dummy
- @ 0,0 clear
- * mehrere Fenster gleichzeitig anzeigen
- * geschrieben werden kann nur in das
- * zuletzt aktivierte
- ACTIVATE WINDOW oben
- wait " Bitte Taste drücken " to dummy
- ACTIVATE WINDOW mitte
- wait " Bitte Taste drücken " to dummy
- ACTIVATE WINDOW unten
- wait " Bitte Taste drücken " to dummy
-
- * alle Fenster löschen
- * im Unterschied zu DEACTIVATE wird der
- * Speicherinhalt gelöscht
- clear WINDOWs
- * Fenster können natürlich auch ver-
- * schoben, vergrößert, verkleinert
- * werden
- * Definition eines Fensters zum Spielen
- * Eckpunkte des Fensters durch Variable
- * festlegen
- x1 = 11
- x2 = 13
- y1 = 35
- y2 = 44
- DEFINE WINDOW spiel from x1, y1 to x2, y2
-
- * Das Fenster darf nicht über die Bild-
- * schirmgrenze, deshalb
- min_x = 0
- max_x = 20
- min_y = 0
- max_y = 79
- * Fenster anzeigen
- ACTIVATE WINDOW spiel
- * Jetzt wollen wir damit spielen!
- DO spielen
- SET MESSAGE to "Ende mit beliebiger Taste"
- wait " So ist das Fenster natürlich schöner!" to taste
- SET scoreboard on
- SET status on
- SET talk on
- SET MESSAGE to
- SET border to
- SET color to
- clear all
- * EOP d_fenste.prg
-
- procedure f_DEFINE
- DEFINE WINDOW oben from 1,1 to 10,50
- DEFINE WINDOW mitte from 9,25 to 15,55
- DEFINE WINDOW unten from 14,30 to 24,79
- return
-
- procedure spielen
- SET MESSAGE to "Verschieben F7 " + ;
- "Vergrößern SHIFT F7 Ende RETURN"
- taste = 0
- DO while taste <> 13
- SET MESSAGE to "Verschieben F7 " + ;
- "Vergrößern SHIFT F7 Ende mit Return"
- taste = inkey(5)
- DO CASE
- CASE taste = - 6 && F7 -- also verschieben
- ende = 0
- DO while ende <> 13
- SET MESSAGE to "Cursortasten zur Steuerung " + ;
- "benutzen Ende RETURN"
- ende = inkey(55)
- DO CASE
- CASE ende = 4 && nach rechts
- y2 = y2 + 2
- * überprüfen, ob Grenzen überschritten werden
- if y2 < max_y
- move WINDOW spiel by 0,1
- y1 = y1 + 1
- * linke Eckkoordinate erhöhen
- else
- y2 = y2 - 1
- endif
- CASE ende = 5 && aufwärts
- x1 = x1 - 1
- if x1 > min_x
- move WINDOW spiel by -1,0
- x2 = x2 - 1
- else
- x1 = x1 + 1
- endif
- CASE ende = 19 && nach links
- y1 = y1 - 1
- if y1 > min_y
- move WINDOW spiel by 0,-1
- y2 = y2 - 1
- else
- y1 = y1 + 1
- endif
- CASE ende = 24 && abwärts
- x2 = x2 + 1
- if x2 < max_x
- move WINDOW spiel by 1,0
- x1 = x1 + 1
- else
- x2 = x2 - 1
- endif
- otherwise
- endCASE
- endDO
- CASE taste = -26 && Shift F7 -- also vergrößern
- clear WINDOWs
- SET color of box to w+*/n
- SET border to single
- DEFINE WINDOW spiel from x1,y1 to x2,y2
- ACTIVATE WINDOW spiel
- ende = 0
- DO while ende <> 13
- SET MESSAGE to "Cursortasten zur Steuerung " + ;
- "benutzen Ende RETURN"
- SET border to single
- ende = inkey(55)
- DO CASE
- CASE ende = 4 && nach rechts vergrößern
- y2 = y2 + 1
- if y2 < max_y
- DEFINE WINDOW spiel from x1,y1 to x2,y2
- ACTIVATE WINDOW spiel
- else
- y2 = y2 - 1
- endif
- CASE ende = 5 && nach oben vergrößern
- x1 = x1 - 1
- if x1 > min_x
- SET border to single
- DEFINE WINDOW spiel from x1,y1 to x2,y2
- ACTIVATE WINDOW spiel
- else
- x1 = x1 + 1
- endif
- CASE ende= 19 && nach links vergrößern
- y1 = y1 - 1
- if y1 > min_y
- SET border to single
- DEFINE WINDOW spiel from x1,y1 to x2,y2
- ACTIVATE WINDOW spiel
- else
- y1 = y1 + 1
- endif
- CASE ende= 24 && abwärts
- x2 = x2 + 1
- if x2 < max_x
- SET border to single
- DEFINE WINDOW spiel from x1,y1 to x2,y2
- ACTIVATE WINDOW spiel
- else
- x2 = x2 - 1
- endif
- otherwise
- endCASE
- endDO
- endCASE
- SET border to
- DEFINE WINDOW spiel from x1,y1 to x2,y2 DOuble
- ACTIVATE WINDOW spiel
- endDO
- return
- * -------------------------------------------------------- *
- * Ende von D_FENSTER.PRG *