home *** CD-ROM | disk | FTP | other *** search
- TYPE GRAFREC = RECORD
- UL_CORNER,
- UR_CORNER,
- LL_CORNER,
- LR_CORNER,
- H_BAR,
- V_BAR,
- LINE_CROSS,
- T_DOWN,
- T_UP,
- T_RIGHT,
- T_LEFT : STRING[4]
- END;
-
-
- VAR GRAFCHARS : GRAFREC;
- X,Y : INTEGER;
- WIDTH,HEIGHT : INTEGER;
-
-
- PROCEDURE DEFINE_CHARS(VAR GRAFCHARS : GRAFREC);
-
- BEGIN
- WITH GRAFCHARS DO
- BEGIN
- UL_CORNER := CHR(201);
- UR_CORNER := CHR(187);
- LL_CORNER := CHR(200);
- LR_CORNER := CHR(188);
- H_BAR := CHR(205);
- V_BAR := CHR(186);
- LINE_CROSS := CHR(206);
- T_DOWN := CHR(203);
- T_UP := CHR(202);
- T_RIGHT := CHR(185);
- T_LEFT := CHR(204)
- END
- END;
-
-
- PROCEDURE MAKE_BOX(X,Y,WIDTH,HEIGHT : INTEGER;
- GRAFCHARS : GRAFREC);
-
- VAR I,J : INTEGER;
-
- BEGIN
- IF X < 0 THEN X := (80-WIDTH) DIV 2; { Negative X centers box }
- WITH GRAFCHARS DO
- BEGIN { Draw top line }
- GOTOXY(X,Y); WRITE(UL_CORNER);
- FOR I := 3 TO WIDTH DO WRITE(H_BAR);
- WRITE(UR_CORNER);
- { Draw bottom line }
- GOTOXY(X,(Y+HEIGHT)-1); WRITE(LL_CORNER);
- FOR I := 3 TO WIDTH DO WRITE(H_BAR);
- WRITE(LR_CORNER);
- { Draw sides }
- FOR I := 1 TO HEIGHT-2 DO
- BEGIN
- GOTOXY(X,Y+I); WRITE(V_BAR);
- GOTOXY((X+WIDTH)-1,Y+I); WRITE(V_BAR)
- END
- END
- END;