home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 02 / titel / box.def < prev    next >
Encoding:
Modula Definition  |  1990-11-23  |  2.7 KB  |  75 lines

  1. (* ------------------------------------------------------ *)
  2. (*                       BOX.DEF                          *)
  3. (*               Message und Antwort-Boxen                *)
  4. (*   Ausgaberoutinen schreiben direkt auf den Bildschirm  *)
  5. (*                                                        *)
  6. (*          (c) 1991 Wolfhard Rinke & TOOLBOX             *)
  7. (* ------------------------------------------------------ *)
  8. DEFINITION MODULE Box;
  9.  
  10. FROM SYSTEM IMPORT BYTE;
  11.  
  12. TYPE
  13.   EntrySet = SET OF CHAR;
  14.  
  15. VAR
  16.   TextAttr : BYTE;
  17.  
  18.  
  19. (* ------------------------------------------------------ *)
  20.  
  21.   PROCEDURE WriteCharXY(col, row : CARDINAL;
  22.                         ch       : CHAR;
  23.                         num      : CARDINAL);
  24.     (* Schreibt ein Zeichen "ch" an der Stelle            *)
  25.     (* "col", "row" "num"-mal in den Bildschirmspeicher.  *)
  26.  
  27. (* ------------------------------------------------------ *)
  28.  
  29.   PROCEDURE ClrScr(x1, y1, x2, y2 : CARDINAL);
  30.     (* Löscht einen Bildschirmausschnitt. *)
  31.  
  32. (* ------------------------------------------------------ *)
  33.  
  34.   PROCEDURE WriteTextXY(col, row : CARDINAL;
  35.                         s        : ARRAY OF CHAR);
  36.     (* Schreibt einen String in den Bildschirmspeicher    *)
  37.     (* Es gibt derzeit keine Kontrolle auf korrekte Länge *)
  38.  
  39. (* ------------------------------------------------------ *)
  40.  
  41.   PROCEDURE Frame(x1, y1, x2, y2 : CARDINAL);
  42.     (* Zeichnet einen doppelten Rahmen um einen Bild-     *)
  43.     (* schirmausschnitt.                                  *)
  44.  
  45. (* ------------------------------------------------------ *)
  46.  
  47.   PROCEDURE Shadow(x1, y1, x2, y2 : CARDINAL);
  48.     (* "schattiert" den Bildschirmausschnitt. Zwischen    *)
  49.     (* Rahmen und dem Bildschirmrand muß noch Platz für   *)
  50.     (* den Schatten sein. Kein Check!                     *)
  51.  
  52. (* ------------------------------------------------------ *)
  53.  
  54.   PROCEDURE Message(head     : ARRAY OF CHAR;
  55.                     col, row : CARDINAL;
  56.                     s        : ARRAY OF CHAR);
  57.     (* "head" ist die Kopfzeile der Box. Wird der Leer-   *)
  58.     (* string als Parameter angegeben, erscheint keine    *)
  59.     (* Kopfzeile. Der Kopf wird zentriert.                *)
  60.  
  61. (* ------------------------------------------------------ *)
  62.  
  63.   PROCEDURE Answer(col, row : CARDINAL;
  64.                    s        : ARRAY OF CHAR;
  65.                    corr     : EntrySet;
  66.                    VAR ch   : CHAR);
  67.     (* Der Prozedur kann ein Zeichensatz übergeben werden,*)
  68.     (* der die gültige Auswahl beinhaltet.                *)
  69.     (* Das angewählte Zeichen wird nicht mehr ausgegeben. *)
  70.  
  71. END Box.
  72. (* ------------------------------------------------------ *)
  73. (*                 Ende von BOX.DEF                       *)
  74.  
  75.