home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 12 / tricks / rahmen.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-09-06  |  1.9 KB  |  65 lines

  1. (* ------------------------------------------------------ *)
  2. (*                  RAHMEN.PAS                            *)
  3. (*     demonstriert die Erstellung eines beliebigen       *)
  4. (*     Rahmens mit inverser Darstellung im Inneren        *)
  5. (*         (c) 1989 Alfred Kraft  &  TOOLBOX              *)
  6. (* ------------------------------------------------------ *)
  7. PROGRAM rahmen_demo;
  8.  
  9. USES Crt;
  10.  
  11. VAR
  12.   i      : INTEGER;
  13.   fehler : BOOLEAN;
  14.  
  15.   PROCEDURE normal;
  16.   BEGIN
  17.     TextBackground(0);  TextColor(7);
  18.     ClrScr;             GotoXY(1,1);
  19.   END;
  20.  
  21.   PROCEDURE revers;
  22.   BEGIN
  23.     TextBackground(7);  TextColor(0);
  24.     ClrScr;             GotoXY(1,1);
  25.   END;
  26.  
  27.   PROCEDURE rahmen(ls, oz, rs, uz : BYTE);
  28.   BEGIN
  29.     Window(1,1,80,25);  normal;
  30.     fehler := (ls > rs - 2) OR (oz > uz -2);
  31.     IF NOT fehler THEN BEGIN
  32.       GotoXY(ls,oz);  Write(Chr(201));
  33.       FOR i := 1 TO (rs - ls -1) DO Write(Chr(205));  {oben}
  34.       Write(Chr(187));
  35.       WriteLn;
  36.       GotoXY(ls,oz + 1);
  37.       FOR i := 1 TO (uz - oz - 1) DO BEGIN
  38.         Write(Chr(186));                     { linker rand }
  39.         GotoXY(ls, oz + i + 1);
  40.       END;
  41.       Write(Chr(200));
  42.       FOR i := 1 TO (rs - ls - 1) DO Write(Chr(205));
  43.       Write(Chr(188));                             { unten }
  44.       GotoXY(rs,oz);
  45.       FOR i := oz + 1 TO uz - 1 DO BEGIN
  46.         GotoXY(rs,i);
  47.         Write(Chr(186));             { rechter rand }
  48.       END;
  49.       GotoXY(ls +1,oz + 1);
  50.       Window(ls + 1, oz + 1, rs - 1, uz - 1);
  51.       revers;
  52.       GotoXY(1,1);
  53.     END ELSE BEGIN
  54.       rahmen(49,2,79,8);
  55.       WriteLn('falsche Parameter !');
  56.       WriteLn('es muß gelten : ls <= rs - 2');
  57.       WriteLn('                oz <= uz - 2');
  58.     END;
  59.   END;
  60.  
  61. BEGIN
  62.   rahmen(1,1,79,24);
  63. END.
  64. (* ------------------------------------------------------ *)
  65. (*                     RAHMEN.PAS                         *)